по окончанию которого нужно отправлять на бэк юзера с посчитанным результатом и массив ответов. После чего должна происходить отрисовка результатов. Но проблема в том, что в момент вызова sendAnswers в стейте ещё "старое" значение юзера и массива ответов (отправляется 8 ответов, т.к. последний 9-ый только "отправился" в стейт). Как подобное можно решить?
это функциональнная компонента?
попробуй так :) setTimeout(() => { sendAnswer() }) бессмертный костыль, который частопомгает
да
хитрость не сработала. Всё-равно 8 ответов уходит вместо 9
покажи полностью функцию, лучше весь код
Не привязываясь к коду, вместо такого const [foo, setFoo] = useState(); .... setFoo(calculateNewFoo()); sendFoo(foo); // <- тут всегда будет старое значение Должно быть const newFoo = calculateNewFoo(); setFoo(newFoo); sendFoo(newFoo);
все просто. То что сетаешь в user сделай переменной, и передай ее в сначала в сетюзер, потом в sendAnser и не парься. Т.е. бери из параметров функции, а не из стора, который еще не обновился
ща чекну
а в сенд ансвер передал?
отписался чисто поблагодарить) В принципе, с таким результатом можно будет и бэку передать, а потом прикручивать его часть.
Обсуждают сегодня