Привет, я продолжаю получать неопределенность для первого элемента, а затем получаю полный элемент. Есть ли способ получить элемент в первый раз?
const [me,{data}]=useMutation(ME_MUTATON)
const User = data?.me
console.info(,User)
console.info("fgf",User?.userName)
useEffect(() => {
me()
}, [me]);
(Привет, я продолжаю получать неопределенность для первого элемента, затем я получаю полный элемент, есть ли способ получить элемент в первый раз?)
Я пробовал, но ничего





Почему вы не используете свои данные?
const [me, { data }] = useMutation(ME_MUTATON);
const [user, setUser] = useState();
useEffect(() => {
me();
}, [me]);
useEffect(() => {
if (data && data.me && JSON.stringify(data.me) !== JSON.stringify(user)) {
const User = data.me;
console.info(User);
console.info("Username: ", User.username);
setUser(User);
}
}, [data]);
проблема в вашем коде заключается в том, как я могу использовать эту пользовательскую переменную вне useEffect
Я обновил свой код. Вы можете сделать это, добавив состояние.
спасибо, я пробовал это, но дает мне неограниченный цикл рендеринга
@amghare Я еще раз отредактировал свой ответ. Пожалуйста, проверьте это еще раз и посмотрите, решит ли это вашу проблему.
Да, это работает, спасибо, но почему вы используете useEffect, в то время как мы можем просто использовать оператор if без
useEffect я имею в виду, что мы можем просто использовать if
Потому что, если вы используете свои операторы if вне useEffect, вы кодируете, если выполняется каждый раз, когда компонент рендерится. Но в useEffect если срабатывает только при изменении данных.
Попробуйте удалить строгий режим в app.jsx. ваша ошибка не будет происходить в производственной версии.