Получение первых элементов undefined с использованием реакции useEffect

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

const [me,{data}]=useMutation(ME_MUTATON)
const User = data?.me

console.info(,User)

console.info("fgf",User?.userName)

useEffect(() => {

    me()

  
}, [me]);

(Привет, я продолжаю получать неопределенность для первого элемента, затем я получаю полный элемент, есть ли способ получить элемент в первый раз?)

Попробуйте удалить строгий режим в app.jsx. ваша ошибка не будет происходить в производственной версии.

ClusterH 08.12.2022 21:29

Я пробовал, но ничего

amghare 08.12.2022 22:02
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Почему вы не используете свои данные?

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 08.12.2022 22:02

Я обновил свой код. Вы можете сделать это, добавив состояние.

Amirhossein 08.12.2022 22:03

спасибо, я пробовал это, но дает мне неограниченный цикл рендеринга

amghare 08.12.2022 22:08

@amghare Я еще раз отредактировал свой ответ. Пожалуйста, проверьте это еще раз и посмотрите, решит ли это вашу проблему.

Amirhossein 08.12.2022 22:10

Да, это работает, спасибо, но почему вы используете useEffect, в то время как мы можем просто использовать оператор if без

amghare 08.12.2022 22:18

useEffect я имею в виду, что мы можем просто использовать if

amghare 08.12.2022 22:19

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

Amirhossein 08.12.2022 22:20

Другие вопросы по теме