Необработанный отказ (TypeError): невозможно прочитать свойства неопределенного (чтение «данных»)

У меня есть этот код, и в результате получается необработанное отклонение (TypeError): невозможно прочитать свойства неопределенного (чтение «данных»)

Моя функция создания учетной записи дает мне эту ошибку

const sendRequest = async () => {
    if (!name || !email || !password) return;
    const user = { name, email, password };
    const res = await axios
      .post('/api/v1/auth/register', {
        user,
      })
      .catch((err) => console.info(err));
    const data = await res.data;
    return data;
  };

const handleSubmit = (e) => {
    e.preventDefault();

    sendRequest().then(() => setMloggi(true));
};

Вы можете показать, каково значение res?

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

Ответы 2

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

результат ответа может быть ошибкой. Следовательно, он не возвращает свойство данных. Проверьте, существуют ли данные, и нет необходимости снова ждать

 if (res.data)
    return data;

 return [] // or an object. whatever the standard response

также нет необходимости использовать здесь then, так как результат уже разрешен

const result = sendRequest()
if (result) setMloggi(true)
  1. Я предлагаю использовать блок try catch вместо .then, .catch при использовании async await.
  2. Получение TypeError из-за доступа к чему-то в res, чего не существует
const sendRequest = async () => {
  if (!name || !email || !password) return;
  const user = { name, email, password };
  try {
    const res = await axios.post("/api/v1/auth/register", {
      user,
    });
   const data = await res?.data ;
   return data ?? "not found";
  } catch (err) {
    console.info(err);
  }
};

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