【发布时间】:2019-12-27 08:27:36
【问题描述】:
我正在尝试从 axios.post 返回的 result.data 中获取数组,并将其分配给功能组件中的状态。 下面是代码示例。 提前谢谢你。
我已经使用 useState 在功能组件中创建了一个带有空数组的状态,如下所示。
const [pdsummaryState, setpdsummaryState] = useState({
Data: {
Results:[]
}
});
我正在尝试将 axios.post 返回的数组分配给如下状态
axios.post(config.api.invokeUrl + '/query', queryData)
.then((res)=> {
console.log(res.data);
setpdsummaryState(res.data);
})
res.data中的结果如下。
console.log(res.data);的输出
我正在尝试将结果中的数组分配给状态。
完整代码如下。
const Home = props => {
useEffect(() => {
appInit();
makePostRequest();
}, []);
const [pdsummaryState, setpdsummaryState] = useState({
Data: {
Results:[]
}
});
async function makePostRequest() {
axios.post(config.api.invokeUrl + '/query', queryData)
.then((res)=> {
console.log(res.data);
setpdsummaryState(res.data);
})
}
}
我希望从对状态数组的响应中获取数组并对其进行迭代以在表格中显示数据。
setpdsummaryState(res.data);
console.log(pdsummaryState);
上面是返回一个空数组。 由于某种原因它没有被分配给状态,我可以在我的状态中只有一个数组而不是
Data: { Results:[] }
只是
Results:[]
【问题讨论】:
-
您遇到了什么问题?代码在我看来没问题。
-
数据在状态中正确存储,您可以使用
pdsummaryState.Data.Results.map(data=>console.log(data))进行迭代。 -
你面临什么困难?
-
setPickdetailssummaryState(res.data); console.log(pickdetailssummaryState);这是返回空数组。由于某种原因它没有被分配给状态,我可以在我的状态中只有一个数组而不是 Data: { Results:[] } just Results:[]
-
在你的完整代码中你有
setpdsummaryState,setPickdetailssummaryState在哪里?
标签: reactjs axios react-hooks