• Как добавить ключ каждому элементу списка в React?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Ключ должен быть естественным, например Id сущности (в вашем случае комментария) из БД. Если его нет, то не мучайтесь и используйте порядковый номер элемента, как у вас и написано.
    Удалять элемент (removeCommentItem) можно и по индексу.
    Ответ написан
  • Как использовать ключи в React для удаления элемента?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    Во-первых, использовать порядковый номер в массиве в качестве key, особенно тогда, когда вы собираетесь этот массив изменять - плохая идея. Ключ должен быть жёстко привязан к конкретному элементу, индексы в массиве этого не обеспечивают.

    Во-вторых, компонент CommentItem, вызывающий в какой-то момент переданную в него функцию removeItem(), должен в неё передавать тот самый идентификатор, по которому вы будете удалять элемент.

    Примерный код:
    {comments.map((comment) => (
      <CommentItem
        key={comment.id}
        id={comment.id}
        userName={comment.userName}
        commentText={comment.commentText}
        currentDate={comment.currentDate}
        currentTime={comment.currentTime}
        removeItem={removeCommentItem}
      />
    )}


    CommentItem = (id, removeItem) => {
       return (
        <button onClick={() => removeItem(id)}>Удалить</button>
      )
    };
    Ответ написан
    1 комментарий
  • Почему не работают медиа-запросы на localhost (chrome)?

    @jazzcatt
    Если в секции head не указаны метатеги следующего содержания, может тоже не работать.
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    Ответ написан
    Комментировать
  • Область применения C, C++, C#?

    @jackroll
    Сверхразум
    Ты сейчас делаешь следующее: "сейчас я хорошенько поузнаю, что мне нужно учить, а учить буду потом". Когда этот этап пройдёт, ты будешь думать "так сейчас надо найти самые лучшие книжки и курсы, а потом буду их читать и учить". Когда найдёшь - "так, нужно почитать программач ещё разок, чтобы быть в курсе, не изменилось ли чего". Потом "ага, надо ещё работы посмотреть на данный момент и сделать проекцию в будущее, чтобы предположить свой заработок". И после ещё десятка таких типа-как-небесполезных откладываний ты либо найдёшь какую-то другую великую цель для себя, либо попробуешь начать изучать то, что подготовил, но не протянешь дольше недели.

    Это я к тому, что из этого паттерна прокрастинации и фантазий нужно выбираться прямо сейчас, а не потом. Если ещё более прямо надо - бери любой язык и учи его месяц, не тратя время на всякую чушь. Иначе гроб.
    Ответ написан
    1 комментарий
  • Зачем нужен Gulp?

    @artinnok
    бекенд-программист
    CSS и JS:
    К примеру, у вас имеется большое количество (Х штук) css или js файлов, которое вы подключаете на своих страницах посредством тэгов <link> и <src>.
    При загрузке страницы, браузер клиента будет отправлять X запросов к вашему серверу, а ваш сервер должен будет ответить на X запросов.
    Это:
    1. Тормозит загрузку страницы - будете ждать ответа от сервера
    2. Загружает ваш сервер

    С помощью сборщиков фронтэнда вы можете "склеить" все файлы в один - main.css и main.js, которые будут отдаваться 2 запросами с сервера. Также, вы сможете минифицировать CSS и JS. Под минификацией подразумевается уменьшение размеров файла на диске. Естественно, более легкий файлы будет быстрее прогружаться + минимальное количество запросов к серверу.

    IMG:
    К примеру, у вас имеется Х изображений размером 700 Кбайт. Клиенту надо будет загрузить 700 * X Кбайт. Если вы пропустите свои изображения через Gulp, то вы получите изображения с меньшим размером на диске и такого же качества, т.е. клиенту придется прогрузить примерно (500-600) * X Кбайт.
    Ответ написан
    1 комментарий
  • Как input полю при потере фокуса запретить прыгать?

    0xD34F
    @0xD34F Куратор тега React
    Делаем метод:

    onMouseDown(e) {
      e.preventDefault();
    }

    И добавляем его кнопке удаления значения в качестве обработчика соответствующего события:

    onMouseDown={this.onMouseDown}
    Ответ написан
    1 комментарий
  • Как разделить очень длинный js-файл на несколько штук?

    @MNB
    1. Берем шииииииирокую железную линейку и фигачим себе по пальцам, до тех пор пока не научимся разбивать большой код на части еще на этапе написания.
    2. Открываем "Мартин Фаулер. Рефакторинг. Улучшение существующего кода". Читаем от корки до корки.
    3. Закрываем книгу.
    4. Рефакторим код.
    5. Читаем предыдущий ответ (про webpack, browserify+commonjs, requirejs) очень очень внимательно
    Ответ написан
    4 комментария
  • Почему в условии к while не пишут var/let?

    @andreysuha
    Что то знаю
    В for есть три блока если можно так сказать 1 объявление переменной, 2 само условие выхода, 3 как изменять переменную с каждым циклом. Во втором блоке проверяется сответствует значение переменной условий условию или нет. Так вот чтобы проверять условие, то во первых переменная должна существовать что бы ее проверять, а во вторых если бы и можно было создавать переменную в момент проверки, то она пересоздавалась бы при каждой итерации цикла. А собственно в while, есть только вот этот самый блок проверки, а создаётся и изменяется переменная в не while
    Ответ написан
    Комментировать
  • Почему в условии к while не пишут var/let?

    в цикле for принято использовать "встроенную" переменную для итерации, но с тем же успехом можно пользовать и объявленную вне

    читай
    Ответ написан
    5 комментариев
  • Как обратиться к конкретному элементу из нескольких с одинаковым классом?

    Chefranov
    @Chefranov
    Новичок
    <ul>
      <li class="js-cardPrice">Hello world</li>
      <li class="js-cardPrice">Hello universe</li>
      <li class="js-cardPrice">Hello Iliya</li>
    </ul>

    $(".js-cardPrice").on("click", function() {
        var a = $(this).text(); // например, получим текст текущего элемента
        console.log(a);
        alert(a);
    });


    Ответ написан
    8 комментариев
  • Как вывести данные из аналитики amocrm?

    solohin
    @solohin
    Внедряю CRM-системы в малый и средний бизнес
    Там есть REST-api. Оно простое. Там всего несколько объектов.
    Вытаскивайте все эти объекты, сохраняйте куда-нибудь и на их основе делайте аналитику.
    Можно выводить данные в стандартные виджеты amoCRM
    Вот ссылка на документацию https://developers.amocrm.ru/rest_api/
    Ответ написан
    Комментировать
  • Почему выдаёт ошибку?

    Dem1
    @Dem1
    Ruby on Rails developer
    Дело в том, что у unless нету варианта elsif (Только у if)
    Ответ написан
    Комментировать
  • Какие доменные зоны самые дешевые?

    ankfrv
    @ankfrv
    У некоммерческих проектов есть одна беда. Точнее, она есть у их владельцев/администраторов. Они думают, что им все должны помогать. Это не так. Если вы планируете серьезный интернациональный проект, веря в его необходимость — откажите себе в чем-то, но купите нормальный домен. Хотя, чем нужно отказать, чтобы купить домен за несколько долларов в год? Ну, пиццу разок не покушайте, на завтраках сэкономьте, в конце концов.
    Все дешевые или бесплатные домены имеют низкую репутацию и то, в чем вы сэкономите сегодня, принесет вам только убытки завтра — пусть не финансовые, так эмоциональные.
    Ответ написан
    2 комментария