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

Ребята возник такой вопрос тоесть мне нужно во втором еффекте if(stats)

?
а как же то что вначале они null потом сфетчились в массив
а во втором еффекте в зависимостях stats, тоесть почему оно не реигирует на то что статы сфетчились тоесть изменились
useEffect(()=>{
async function fetchData() {
const promise = await axios.get('https://lb-app.herokuapp.com/stats');
setStats(promise.data);
}
fetchData();
}, []);

useEffect(()=>{
//stats = null
}, [stats]);

24 ответов

14 просмотров

Нужно для чего? Вопрос какой-то непонятный

Drew-Naumenko Автор вопроса
IceBerg
Нужно для чего? Вопрос какой-то непонятный

ну например сгрузились данные и я хочу чтото с ними сделать не важно отсортировать там их или фильтрануть как только так сразу я их получу

Drew Naumenko
ну например сгрузились данные и я хочу чтото с ним...

это в контексте существования стейт менеджеров или в вакууме? Если второе, то вот одной строкой получаешь данные, второй сортируешь)

Drew-Naumenko Автор вопроса
IceBerg
это в контексте существования стейт менеджеров или...

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

Drew Naumenko
ну это уже было сделано что ты до сета в stats их...

у тебя на скриншоте в первом useEffect нет setState

Drew-Naumenko Автор вопроса
imay
у тебя на скриншоте в первом useEffect нет setStat...

у меня нету скриншота и там есть setStats его я и подразумевал

где здесь setStats?

imay
где здесь setStats?

ты о зависимостях что ли?

Drew-Naumenko Автор вопроса
imay
где здесь setStats?

ты помоему чтото напутал ты не на моё сообщение смотрел видимо

Drew Naumenko
ты помоему чтото напутал ты не на моё сообщение см...

это не твое? useEffect(()=>{ async function fetchData() { const promise = await axios.get('https://lb-app.herokuapp.com/stats'); setStats(promise.data); } fetchData(); }, []); useEffect(()=>{ //stats = null }, [stats]);

Drew-Naumenko Автор вопроса
imay
это не твое? useEffect(()=>{ async functio...

ну и что вон сет стоит промис сетит когда дождётса

Drew Naumenko
ну и что вон сет стоит промис сетит когда дождётса

да, увидел. Второй useEffect должен 2 раза вызваться, и во второй раз там должны быть данные в stats. второй раз не вызывается что ли?

Drew-Naumenko Автор вопроса
IceBerg
ты о зависимостях что ли?

проблема нашлась может еффекты так и работают что оно при первой рендере всеравно зашло вот второй useEffect хоть там в зависимостях и стоит stats в моём понгимании при первом рендере должно только сюда заходить componentDidMount или useEffect c пустым массивом а когда я ставлю какуето переменную в зависимости то этот еффект должен срабатывать если это переменная поменялась поправте меня если я гдето не так понимаю

Drew-Naumenko Автор вопроса
IceBerg
При первом всегда выполняются

вот это и странно переменная не поменялась, но тем не менее еффект сработал

Drew Naumenko
вот это и странно переменная не поменялась, но те...

а это уже документацию сначала читать было нужно

Drew Naumenko
вот это и странно переменная не поменялась, но те...

эфект работает всегда при первом рендере. А потом уже может реагировать на изменения зависимостей

Drew-Naumenko Автор вопроса
imay
эфект работает всегда при первом рендере. А потом ...

я это понимаю, и для useEffect c пустым массивом это логически правильно но когда зависимсостях чтото стоит это странно тоесть я count не менял а еффект сработал const [count, setCounter] = useState(0) useEffect(()=>{ console.log('im in effect') }, [count])

Drew Naumenko
я это понимаю, и для useEffect c пустым массивом э...

при первом рендере сработает, потом уже на изменения count

Drew-Naumenko Автор вопроса
𝖊𝖙𝖍𝖔𝖗𝖟 😈
при первом рендере сработает, потом уже на изменен...

вот теперь я понял это но почему так сделали непонятно, ну да ладно всем спасибо

Drew Naumenko
вот теперь я понял это но почему так сделали неп...

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

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

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

а через 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
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
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
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта