Задать вопрос
  • Как пройтись по объекту в React?

    0xD34F
    @0xD34F Куратор тега React
    Object.entries(obj).map(([ key, val ]) => (
      <BlockItemComp
        name={key}
        val={val}
      />
    ))
    Ответ написан
    1 комментарий
  • Есть целое число 6 как из него получить список?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    В современном js можно сделать так:
    new Array(6).fill(null).map((_, i) => i);

    Или вот так, раз у вас изначально есть массив:
    arr.map((_, i) => i);

    Или даже просто так:
    Object.keys(arr);
    Ответ написан
    Комментировать
  • Как реализовать подобный эффект?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Абсолютное позиционирование, вырезание картинок, before/after... Ох и понапридумывают всякого...
    .example {
        background: linear-gradient(to right, #F0F3BD, #F0F3BD), // левая граница
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // верхняя
            linear-gradient(to right, #F0F3BD 0%, #F0F3BD 70%, #fff 70%, #fff 100%), // нижняя
            linear-gradient(to right, #fff, #fff); // правая
        background-size: .5rem 100%, 100% .5rem, 100% .5rem, .5rem 100%;
        background-position: top left, top left, bottom left, top right;
        background-repeat: no-repeat;
    }

    Один элемент. Один фон. Для всего остального есть CSS.
    codepen
    5aa57a2048bd2215197814.png
    Ответ написан
    Комментировать
  • Как получить год из даты (проблема с getFullYear)?

    PavelK
    @PavelK
    Выдает ошибку cannot read property 'getfullyear' of undefined.

    Потому что это функция...
    console.log( this.props.dateRange.start.getFullYear() );
    Ответ написан
    1 комментарий
  • В чем смысла в TypeScript?

    @eeiaao
    Если вопрос обобщить, то получим: Зачем нужна статическая типизация?

    Статическая типизация позволяет снизить вероятность ошибки. Например, в year должно оказаться число, а не строка, не массив, не объект. Так более ясно выражется мысль. При ошибке во время компиляции вы узнаете, что где-то косяк и программа может вести себя некорректно.

    Плюс к тому ваша ide, возможно, будет вам подсказывать где вы делаете что-то не так.

    В общем ускорится разработка и отладка, легче будет расширять проект.
    Ответ написан
    1 комментарий
  • Как получить доступ к данным из соседнего окна браузера?

    @BorisKorobkov
    Web developer
    Нестандартная задача.
    Нужно получить доступ к данным соседнего окна в браузере, в котором открыт сторонний сайт. Сайт этот против, чтобы его показывали по фреймах и запрещает доступ через JavaScript, выдает такие ошибки...
    Брать его через Curl тоже не получается, так как там капча.
    Самое обидное, что я его открываю и вижу на экране своего компа. Мне просто нужно как-то программно прочитать его контент.
    Должно же быть какое-то решение, в т.ч самое кривое.


    Нестандартная задача.
    Нужно получить доступ к банковскому хранилищу, которое находится в соседнем здании. Банк этот против, чтобы его взламывали, и запрещает несанкционированный доступ, включается сигнализация.
    Брать его через подкоп тоже не получается, так как там армированная бетонная плита.
    Самое обидное, что я его открываю свое окно и вижу на улице вход в банк. Мне просто нужно как-то попасть в сейф.
    Должно же быть какое-то решение, в т.ч самое кривое.
    Ответ написан
    Комментировать
  • Как при клике на элемент добавить ему класс, а у всех соседей удалить?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Где элементы находятся, что за элементы, и какой класс будем им добавлять/убирать:

    const container = document.querySelector('nav');
    const itemSelector = '.sidebar-item';
    const className = 'selected';

    Вариант раз, делегируем обработку клика контейнеру. При клике ищем элемент с нужным классом, снимаем класс, устанавливаем класс кликнутому:

    container.addEventListener('click', function(e) {
      const item = e.target.closest(itemSelector);
      if (item) {
        const activeItem = this.querySelector(`.${className}`);
        if (activeItem) {
          activeItem.classList.remove(className);
        }
    
        item.classList.add(className);
      }
    });

    Вариант два, тоже с делегированием. Перебираем все элементы, переключаем класс в зависимости от того, является ли текущий элемент кликнутым:

    container.addEventListener('click', e => {
      const item = e.target.closest(itemSelector);
      if (item) {
        for (const n of e.currentTarget.querySelectorAll(itemSelector)) {
          n.classList.toggle(className, n === item);
        }
      }
    });

    Вариант три, назначаем обработчик клика каждому элементу индивидуально, перебираем элементы аналогично предыдущему варианту:

    const items = container.querySelectorAll(itemSelector);
    const onClick = e => items.forEach(n => n.classList.toggle(className, n === e.currentTarget));
    items.forEach(n => n.addEventListener('click', onClick));
    Ответ написан
    Комментировать
  • Когда нужно указывать let, а когда const?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Если переопределять не планируете - const
    Планируете - let

    А вообще юзайте Eslint, он долбанет по рукам когда нужно будет.
    Ответ написан
    Комментировать
  • Для чего нужен Redux-thunk?

    gadfi
    @gadfi
    https://gamega.org
    честно говоря странынй вопрос- задача тривиальна, но чтобы не отпугнуть масы было написано хорошо оттетсировнное решение, которое хватает на очень многие кейсы

    function createThunkMiddleware(extraArgument) {
      return ({ dispatch, getState }) => next => action => {
        if (typeof action === 'function') {
          return action(dispatch, getState, extraArgument);
        }
    
        return next(action);
      };
    }
    
    const thunk = createThunkMiddleware();
    thunk.withExtraArgument = createThunkMiddleware;
    
    export default thunk;


    для тех кто не любит лазить по исходникам гитхаба приведенный выше код это весь код redyx-thunk + есть еще тесты которые несколько длинее )
    нет особой магии, не скажу что ваш пример лучше, но если вам нравится то используйте, но будьте готовы отвечать на вопрос колег, а че thunk или saga не взял ? его все занют, а в чем профит товего решения ?
    это вопросы не конкертно по вашему коду, а вообще - вполне оправданые вопросы когда кто то тащит в проект свой велик вместо всем известного решения
    Ответ написан
    Комментировать
  • Какой план обучения программированию?

    sim3x
    @sim3x
    www.google.com.ua/search?q=site%3Atoster.ru+план+обучения+программированию
    Ответ написан
    Комментировать
  • Почему так происходит?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    1. var - задаёт область видимости переменной, если вы перед строкой tempScrollTop = currentScrollTop; укажите var, то при следующем вызове функции в переменной не сохраняется предыдущего значения.

    2. Потому что tempScrollTop нужно запоминать в конце, что бы при следующем вызове функции по событию сравнивать с предыдущим значением, а не с текущим.

    3. Во втором варианте переменная инициализируется значением равным 0
    Ответ написан
    2 комментария
  • Рано идти на апворк?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    На апворке тебе постоянно нужно будет писать заявки (application) на работу. А если тобой заинтересуются, то придётся общаться с клиентами в чате (от общения голосом придётся отказываться). Сможешь это всё потянуть?

    Ну и твой уровень вот так из пары слов не понять. Если способен сам взять задачу, раскурить и сделать, то дерзай. При условии предыдущего пункта.
    Ответ написан
    2 комментария
  • Остаться работать или уволиться?

    tema_sun
    @tema_sun
    Выучить новую технологию за чужой счет штука довольно заманчивая, на мой взгляд.
    Ответ написан
    Комментировать
  • Как сделать запрос на сервер в React?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    можно в функцию handleSubmit используя fetch или axios засунуть post с вашими данными на сервер
    Ответ написан
    2 комментария
  • Go + Websocket или NodeJS + Websocket?

    yellow79
    @yellow79
    Senior Software Engineer
    два языка VS один язык

    Go + Websocket -> нужно либо два программиста, либо один, но знанием обоих языков
    NodeJS + Websocket -> достаточно одного JS программиста
    Ответ написан
    1 комментарий
  • Клиент на Upwork угрожает международным судом, возможно ли это?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Блеф. Мой совет, меньше оскорблений и вообще общений с этим заказчиков. На все "а мы подадим в суд", отвечаем "это Ваше право, как раз готовлю встречный иск". Вы не отказываетесь от своих обязательств, они отказываются от своих и просто пугают. Возможно тактика разрыва отношений, что бв не заплатить остаток и не переживать, что Вы будете пакостить. Так как отсутствие иска уже будете считать победой. Гребаная психология.
    Ответ написан
    Комментировать
  • Существует ли язык разметки веб страниц в виде вычислительных таблиц?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    google documents уже делает это. Но это не просто колоссальная работа, это немного больше.
    Вы как бы должны понимать, что поддержка формул - это НЕ язык разметки, это уже язык программирования.

    И как бы зачем нужно писать браузер, способный отображать документы такого типа, если УЖЕ есть программа (excel, openoffice таблицы), которые умеют отображать документы такого типа? Вы должны понимать, что это не взлетит.
    Ответ написан
    2 комментария
  • Где взять тестовые данные для дизайна?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Неужели так сложно придумать фейковые телефоны и адреса?
    Ответ написан
    3 комментария
  • Как уменьшить размер фото в CSS если в файле я этого не вижу?

    PavelMonro
    @PavelMonro
    В build.js код
    a(["jquery","get_val"],function(a,b){a(function(){var c=a("html");if(c.hasClass("homestead_page")){var d=a(".section_wrap"),e=".resize_rooms";d.find("section.homestead").each(function(){var c=a(this),d=c.find("nav.rooms"),f=d.find(">a");!function(){function b(){a(window).trigger("resize"+e),c.each(function(){var b=a(this),c=b.find(">span"),d=c.width();b.css("width",""),b.css("width",d+h+"px")})}var c=f.find(">span"),d=parseInt(c.eq(0).css("padding-left"),10),g=parseInt(c.eq(0).css("padding-right"),10),h=d+g;a(window).on("load",a.proxy(setTimeout,null,b,1)),setTimeout(b,1)}(),function(){function c(){var b=a(window).width();i>b&&(b=i),b>j&&(b=j),b-=i,f.css("width",""),f.css("width",Math.floor(b*k/l+g)+"px")}var d=74,g=d+28,h=d+50,i=b("minWidth"),j=b("maxWidth"),k=h-g,l=j-i;a(window).on("resize"+e,c),setTimeout(c,1)}()}),d.find(".columns").each(function(){var b=a(this);!function(){var a=b.attr("data-background");a&&b.css("background-image",'url("'+a+'")')}(),require(["section_block_resize"],function(a){b.each(a)})})}})})}(),function(){function a(){var a=Array.prototype.slice.call(arguments,0);"string"!=typeof a[0]&&a.unshift("pages/homestead_subpage"),window.define.apply(this,a)}a.amd={jQuery:!0},/**
    Ответ написан
    1 комментарий