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

Всем привет! А подскажите плз, в 17-й версии поюзать какой-нибудь

другой хук внутри useEffect не судьба?

47 ответов

25 просмотров

Хуки по своей природе должны быть вызваны только во время рендера какого-либо компонента

Vladimir-Samoilenko Автор вопроса
Sergey Grishchenko
Хуки по своей природе должны быть вызваны только в...

А как тогда побороть проблему повторных вызовов хука при ререндере?

Vladimir-Samoilenko Автор вопроса
ST RR
Хука useEffect?

Нет, другого. Который я хочу вызывать в useEffect при определенных изменениях в стейте.

если у тебя есть потребность вызвать хук в хуке, то ты что-то делаешь неправильно

ну так зачем тебе хук, используй просто функцию

Sergey Grishchenko
Что?

хуки и рендер вообще никак не связаны

Vladimir-Samoilenko Автор вопроса
Андрей
ну так зачем тебе хук, используй просто функцию

а он функция и есть. Просто называется use…

Vladimir Samoilenko
а он функция и есть. Просто называется use…

Как по-твоему useState возвращает тебе одно и то же значение между разными рендерами и не путается с твоими другими компонентами?

Vladimir-Samoilenko Автор вопроса
Sergey Grishchenko
Как по-твоему useState возвращает тебе одно и то ж...

между какими разными рендерами? useState отрабатывает один раз, дальше ты значения устанавливаешь set-функцией

Sergey Grishchenko
Как по-твоему useState возвращает тебе одно и то ж...

Он сохраняет значение в текстовом файле, и потом считывает

Vladimir-Samoilenko Автор вопроса
Sergey Grishchenko
Как по-твоему useState возвращает тебе одно и то ж...

между какими разными рендерами? useState отрабатывает один раз, а дальше ты всего лишь устанавливаешь нужное тебе значение set-функцией

Vladimir Samoilenko
между какими разными рендерами? useState отрабатыв...

Не пойму, это троллинг или ты реально так считаешь?

Андрей
если у тебя есть потребность вызвать хук в хуке, т...

хук в хуке это норма, но вызов внутри колбэка useEffect это не хук в хуке

Vladimir Samoilenko
а мне именно это и нужно

мало ли что нужно, не выйдет

Vladimir Samoilenko
между какими разными рендерами? useState отрабатыв...

на втором рендере useState уже не вызывается?

Vladimir Samoilenko
что не так?

console.log поставь перед useState и посмотри в консоль сколько раз это там выведется, когда у тебя компонент ререндерится

Vladimir Samoilenko
а зачем?

что значит зачем, да или нет?

Vladimir Samoilenko
а зачем?

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

Vladimir-Samoilenko Автор вопроса
IceBerg
что значит зачем, да или нет?

нет. При втором рендере вызовется все то, что внутри return функционального компонента

Vladimir Samoilenko
нет. При втором рендере вызовется все то, что внут...

ну, ты совершненно неправ, что тут ещё скажешь

Vladimir-Samoilenko Автор вопроса
IceBerg
наверное для того чтобы извлечь текущее состояние ...

а текущее состояние от рендера к рендеру что, одно и то же?

Vladimir-Samoilenko Автор вопроса

ну подумай немножко! useState задает начальное значение, так он что, каждый рендер будет это значение задавать?!

Vladimir Samoilenko
ну подумай немножко! useState задает начальное зна...

при чём тут задавать начальное значение, и возвращать текущее? подумай немножко

Vladimir Samoilenko
ну подумай немножко! useState задает начальное зна...

Он задает начальное значение только когда текущего значения нет

Vladimir Samoilenko
ну подумай немножко! useState задает начальное зна...

я не понимаю ты что не можешь поставить лог в любом компоненте и посмотреть сколько раз он отрабатывает при ререндерах???

Vladimir-Samoilenko Автор вопроса
IceBerg
я не понимаю ты что не можешь поставить лог в любо...

некогда, свою задачу сейчас надо решать. По потом я, конечно, попробую.

Vladimir Samoilenko
некогда, свою задачу сейчас надо решать. По потом ...

что значит некогда, это делается за секунд 10, а споришь ты уже тут минут 10

IceBerg
при чём тут задавать начальное значение, и возвращ...

Если компонент ререндерился несколько раз, хук useState будет вызываться только один раз во время каждого ререндера. При первоначальном рендеринге компонента вызывается каждый хук, включая useState. Затем, если происходят последующие ререндеры компонента (например, из-за изменения состояния или пропсов), функция компонента выполняется снова, и хуки вызываются в том же порядке. Однако, хуки, такие как useState, не вызываются повторно во время ререндеров. Вместо этого, они используют внутреннюю структуру хука, чтобы сохранить состояние между ререндерами и возвращать актуальное состояние при каждом вызове функции компонента.

Андрей
Если компонент ререндерился несколько раз, хук use...

Если компонент ререндерился несколько раз, хук useState будет вызываться только один раз во время каждого ререндера. ..... Однако, хуки, такие как useState, не вызываются повторно во время ререндеров Ты это у чат джпт скопировал что ли?

Андрей
Если компонент ререндерился несколько раз, хук use...

ты сам подумать и уловить несостыковки между фразами "не вызывается" и "возвращает" уловить не можешь?

Андрей
Если компонент ререндерился несколько раз, хук use...

я честно не понимаю как вы нашли здесь пространство для спора, что вообще происходит в этой строке есть понимание? const [count, setCount] = useState(0);

IceBerg
я честно не понимаю как вы нашли здесь пространств...

вызов функции, которая возвращает массив с значением и функцией

Андрей
вызов функции, которая возвращает массив с значени...

на втором рендере что с этой строкой происходит?

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта