214 похожих чатов

Гайс, в реакте есть какие-то подводные у обработчиков onClick у

кнопок, которые триггерят ре-рендер? Думаю кода смысла нет кидать, будет непонятно, попробую описать:

Есть кнопка (Кнопка 1), у которой есть обработчик. Он чото делает и меняет состояние, и из-за изменённого состояния эта самая кнопка уже не рендерится, а рендерится другая кнопка (Кнопка 2), у которой в свою очередь тоже есть обработчик. Проблема такая: в момент ре-рендера, когда по идее должна исчезнуть кнопка 1 и появиться кнопка 2, кнопка 1 исчезает, кнопка 2 появляется, *и одновременно с этим вызывается обработчик у кнопки 2, хотя на кнопку я ещё не нажимал. Это ещё не все, после этого всего, если нажать на кнопку 2, её обработчик не сработает*.

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

onClick={this.handleClick} (именно так, без вызова)

Но она пропадает, если привязываю следующим образом:

onClick={e => this.handleClick(e)}

Насколько мне известно, при втором способе функция-обработчик (e=>...) при каждом клике создаётся по новому, а при первом способе - только один раз. Значит, скорее всего, вышеописанная проблема как-то связана с логикой реакта при ре-рендере, но я всё равно не понял, почему обработчик мгновенно вызывается, как только кнопка была нажата. Подозреваю, что реакт не удаляет первую кнопку и рисует вторую в своём DOMe, а просто подставляет на место первой вторую, поэтому обработчик и срабатывает, но какого хуя это так и как это пофиксить (если, допустим, не хочу юзать второй способ)? Гуглил и нашёл мало и очень слабо связанную с этим инфу. Помогите, мужики, ну либо укажите где я ебланю и в глаза долблюсь

5 ответов

17 просмотров

Сделай книгу, мы с удовольствием почитаем твою проБЛЕму по вечерам по 30 СТРАНиц. 😁

Pov: ты не умеешь читать

Тимур-Друзь 🇷🇺 Автор вопроса
Tai Husk 𝕏
Сделай книгу, мы с удовольствием почитаем твою про...

Ты разРАБ или кто? Я всегда думал, что разрабОтЧиКу, как никОму другому, будет доставлять от чтения стен текста по вечерам, особенно, если они связаны с его профессиАНАЛьной сферой деятельности

Скорее всего, у тебя просто контекст не биндится. P.S.: схуяли разработчику должно нравится читать стену букав, особенно, если там нет картинок – скучно же. Учись формулировать проблему сжато и кратко, желательно с примерами, а не обвинять окружающих в том, что они не разработчики, т.к. не хотят читать стену текста в 10 вечера в тяпницу (я кста прочитал только куски с кодом и высрал ответ не проверяя и не читая остальной текст, так что если ответ сработает, то большая часть текста просто была не нужна).

Тимур-Друзь 🇷🇺 Автор вопроса
satma
Скорее всего, у тебя просто контекст не биндится. ...

Ну про разрабов есесна рофл. Хотя, по моему, это всё-же кому как, мне лично нравятся стены текста, пока там хоть какая-то интересная информация есть (в т.ч описания проблем). Стараюсь просто максимально расписать, потому что чел либо потратит время и прочтёт сколько угодно букоф, либо забьёт хуй и скипнет всё, вот делаю ставку на первых. Не думаю, что это связано с контекстом, handleClick - стрелочная функция в этом же компоненте

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта