[英]Data coming in Service Response but showing 'undefined' from where it is called - JavaScript | React
我打电话给 API 反过来又给我数据。 当我尝试将该数据存储在变量中,然后存储在 console.log 中时,结果是undefined
。 为什么会这样? 如何解决这个问题?
someService.js
getItems: () => {
axios.get('https://jsonplaceholder.typicode.com/users/')
.then( response => {
console.log(response.data); //gives me an array of 10 items
return response.data;
})
}
someReducer.js
case "GET_ITEM_LIST": {
let data = getItemsAPI.getItems();
console.log(data); //gives undefined
return {
...state,
items: data
}
}
对于您的情况,您从服务器获取 API 作为asynchronous
:
尝试像这样async/await
:
export default {
fetch: async (state, { type, payload }) => {
// ....
case "GET_ITEM_LIST": {
let data = await getItemsAPI.getItems();
console.log(data); // you will see data here
return {
...state,
items: data
}
}
// ....
}
}
您需要返回 promise 并等待结果作为其异步。 注意 axios 之前的 return ,它返回您可以处理的 promise。 (我在手机上编辑,我猜格式不好。如果有效,稍后会更新)
getItems: () => { return axios.get('https://jsonplaceholder.typicode.com/users/').then( response => { console.log(response.data); //gives me an array of 10 items return response.data; }) }
然后,在需要的地方await getItems()
或getItems().then()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.