Taras
что там в фото лежит когда сетаешь
Evgeniy
Мне кажется, что если imageDataUrl получаешь асинхронно, то и объект photo нужно получать асинхронно.
Taras
Кстате тоже возможно
Sergiy
просто перед { await поставить?
Taras
Так в дебагере что показывает??
Taras
если на фото навести
Taras
когда сетаешь
Sergiy
сейчас
Sergiy
в обьекте всё есть
Taras
const photo = await {...}
Sergiy
const photo = await {...}
тоже самое
Taras
убери спред оператор
Taras
оставь только фотолинк
Sergiy
что убрать?
Taras
три точки)
Sergiy
не знаю как оно могло помочь, но не помогло
IceBerg
если это хук, то разве uploadedPhotos не должно обновится уже на следующем рендере?
Evgeniy
await ставят перед функцией. Поэтому напиши функцию которая будет возвращать объект в котором должно быть поле imageDataUrl. перед вызовом функции поставь await. Результат вызова присвой photo
Владислав
await ставят перед промисом
Evgeniy
Тогда используй промис.
Taras
попробуй return await setUploadedPhotos(photoLink, …uploadedPhotos);
IceBerg
Да говорю вам, там вроде значение же не сразу обновится)
IceBerg
const [num, setNum] = useState(0) setNum(1) console.log(num) Ты же в консоли не получишь сразу 1, а 0
Taras
Ты когда дебагер ставил он вобще сетал тебе фото
Taras
или пролетал?
Sergiy
Taras
воот с этого и нужно начинать)
IceBerg
получаешь сразу
тестировал? Или тебе так кажется?)
Taras
выведет в консоль 0 потом 1
Taras
Я так думаю
IceBerg
ну, правильно, значит после добавления фото, сначала выведет без фото, т.е. пустой массив
Taras
ну так не сетает фото
Taras
если б так было то ререндер и есть фото
IceBerg
как узнал?
Taras
стоп вобще как ты написал то будет ошибка
Taras
зациклит
Taras
как узнал?
так он говорит что пролетает ту строчку
IceBerg
у меня зациклит, у него нет
IceBerg
функция вызвалась, засеталось 2 рендер, функция уже не вызывается, как ты увидишь вывод в консоль?
Taras
ну да
Taras
к чему это не пойму)
Taras
я говорю что у него не доходит до сета даже
Taras
он говорит что пролетает его
IceBerg
всм пролетает?
Taras
Ну не выполняет его
IceBerg
как его можно пролететь?
Taras
пролетал
а ты пробовал ретурн написать как я писал??
Sergiy
стейт не видит фото просто)
Sergiy
пробовал
Taras
return await setUploadedPhotos(photoLink, …uploadedPhotos); так??
IceBerg
стейт не видит фото просто)
на основании чего делаешь такой вывод? console.log?
Sergiy
да
Sergiy
return await setUploadedPhotos(photoLink, …uploadedPhotos); так??
так оно вообще не выполниться)
IceBerg
так он у тебя в первом рендере, а смотреть нужно во втором уже)
Taras
понятно что не видит)
Taras
где ты выводишь его?
IceBerg
покажи всю компоненту
IceBerg
а ты во втором рендере снова вызываешь эту функцию? сомневаюсь, а консоль лог именно там
Art
Ребята откликнитесь в личку, кто хорошо разбирается в реакте, туплю сильно уже несколько дней подряд. Очень нужна помощь!!!
Sergiy
сейчас я по-другому попробую
Sergiy
решил) нужно было console.log делать вне функции)
Sergiy
спасибо всем
IceBerg
сейчас я по-другому попробую
const TestComp = props => { const [num, setNum] = useState(0) const clickHandler = () => { setNum(num + 1) console.log(num) } return ( <button onClick={clickHandler}> Click me </button> ) } Напиши вот такую дичь, ты ожидаешь 1 увидеть, а увидишь 0
Taras
Ну да
IceBerg
В этом и проблема была)
IceBerg
вызвал функцию, сразу ожидал увидеть там результат, но хуки не так работают
Sergiy
даааа, а я думал дело в асинхронщине
Alexander Cheprasov
Ребят, что за бред? Создаю компоненты как классы экспортирую, а при импорте вот это ошибка. Если переделываю компонент как функцию то все работает
Alexander Cheprasov
Вообще понять не могу, всегда делал компоненты через класс, а сейчас создал новый проект и фигак приезали - ошибка В чем может быть проблема?
IceBerg
Покажи компоненту
Alexander Cheprasov
Alexander Cheprasov
вот кстати закоменченная функция, "аналог" класс. Она нормально импортируется
IceBerg
rander - не знаю такого слова)
Alexander Cheprasov
тьфу ты......))))))))))))
Alexander Cheprasov
все 13 час кода...
Alexander Cheprasov
Спасибо большое! уже 30 минут ковыряюсь)
IceBerg
you are welcome👍