кнопок, которые триггерят ре-рендер? Думаю кода смысла нет кидать, будет непонятно, попробую описать:
Есть кнопка (Кнопка 1), у которой есть обработчик. Он чото делает и меняет состояние, и из-за изменённого состояния эта самая кнопка уже не рендерится, а рендерится другая кнопка (Кнопка 2), у которой в свою очередь тоже есть обработчик. Проблема такая: в момент ре-рендера, когда по идее должна исчезнуть кнопка 1 и появиться кнопка 2, кнопка 1 исчезает, кнопка 2 появляется, *и одновременно с этим вызывается обработчик у кнопки 2, хотя на кнопку я ещё не нажимал. Это ещё не все, после этого всего, если нажать на кнопку 2, её обработчик не сработает*.
Эта проблема у меня появляется, если обработчик я привязываю следующим образом:
onClick={this.handleClick} (именно так, без вызова)
Но она пропадает, если привязываю следующим образом:
onClick={e => this.handleClick(e)}
Насколько мне известно, при втором способе функция-обработчик (e=>...) при каждом клике создаётся по новому, а при первом способе - только один раз. Значит, скорее всего, вышеописанная проблема как-то связана с логикой реакта при ре-рендере, но я всё равно не понял, почему обработчик мгновенно вызывается, как только кнопка была нажата. Подозреваю, что реакт не удаляет первую кнопку и рисует вторую в своём DOMe, а просто подставляет на место первой вторую, поэтому обработчик и срабатывает, но какого хуя это так и как это пофиксить (если, допустим, не хочу юзать второй способ)? Гуглил и нашёл мало и очень слабо связанную с этим инфу. Помогите, мужики, ну либо укажите где я ебланю и в глаза долблюсь
Сделай книгу, мы с удовольствием почитаем твою проБЛЕму по вечерам по 30 СТРАНиц. 😁
Pov: ты не умеешь читать
Ты разРАБ или кто? Я всегда думал, что разрабОтЧиКу, как никОму другому, будет доставлять от чтения стен текста по вечерам, особенно, если они связаны с его профессиАНАЛьной сферой деятельности
Скорее всего, у тебя просто контекст не биндится. P.S.: схуяли разработчику должно нравится читать стену букав, особенно, если там нет картинок – скучно же. Учись формулировать проблему сжато и кратко, желательно с примерами, а не обвинять окружающих в том, что они не разработчики, т.к. не хотят читать стену текста в 10 вечера в тяпницу (я кста прочитал только куски с кодом и высрал ответ не проверяя и не читая остальной текст, так что если ответ сработает, то большая часть текста просто была не нужна).
Ну про разрабов есесна рофл. Хотя, по моему, это всё-же кому как, мне лично нравятся стены текста, пока там хоть какая-то интересная информация есть (в т.ч описания проблем). Стараюсь просто максимально расписать, потому что чел либо потратит время и прочтёт сколько угодно букоф, либо забьёт хуй и скипнет всё, вот делаю ставку на первых. Не думаю, что это связано с контекстом, handleClick - стрелочная функция в этом же компоненте
Обсуждают сегодня