Axios.get() запрос, возвращающий неопределенное значение

#javascript #html #node.js #reactjs #express

#язык JavaScript #HTML #node.js #реагирует на #экспресс

Вопрос:

В приведенном ниже коде я пытаюсь использовать axios, запрос на получение от await axios.get('/products/api') работает только я могу видеть данные в консоли, но для await axios.get('/users/api') неопределенного возвращается на консоль, но когда я пытаюсь получить запрос через почтальона, я могу получить результаты .Я застрял здесь.

«‘ const [userdata, setuserdata] = useState([]); const [продукты, setproducts] = useState([]);

 useEffect(() =gt; {  const fetchUserData = async () =gt; {    const { users } = await axios.get('/users/api')  setuserdata(users);   const { data } = await axios.get('/products/api')  setproducts(data);  }  fetchUserData();    }, []); console.log(products) console.log(userdata)  

Комментарии:

1. вместо «const {пользователи}» попробуйте «const пользователи» и проверьте console.log(пользователи). возможно, пользователи не возвращаются с сервера или возвращаются с другим именем

Ответ №1:

Обновите свой код до этого:

 const users = await axios.get('/users/api')  setuserdata(users.data);   const products = await axios.get('/products/api')  setproducts(products.data);  

Ответ №2:

Прежде чем вы разрушите свою консоль ответов.запишите ответ в журнал. Я имею в виду, попробуй:

 const users = await axios.get('/users/api'); console.log(users)  

Возможно, пользователи не являются частью объекта данных axios по умолчанию. Если вы все еще не определились, вам нужно дважды проверить, возвращает ли ваш api ответ (ПОЧТАЛЬОН).

Ответ №3:

Поверьте, то, что вы пытаетесь сделать, это:

 const [userdata, setUserData] = useState([]) const [products, setProducts] = useState([])  useEffect(() =gt; {  const fetchUserData = async () =gt; {  const users = await axios.get('/users/api')  setUserData([...userdata, users])   const data = await axios.get('/products/api')  setProducts([...products, data])  }  fetchUserData() }, [userdata, products])  console.log(products) console.log(userdata)  

Если вы просто используете [] useEffect его, он будет запускаться только один раз в начале, но для каждой памяти React выдаст предупреждение для products and userdata .

Думаю, что они также лучше работали бы сами по себе useEffect . Вы даже можете сделать свой код чище, создав функцию и передав путь к функции. Нравится:

 const getData = async (path) =gt; await axios.get(`/${path}/api`)