gpt4 book ai didi

javascript - 如何在 setState 回调的回调中进行 axios 调用

转载 作者:行者123 更新时间:2023-12-03 00:41:35 25 4
gpt4 key购买 nike

我有两个异步调用,如下所示。我尝试将 axios 调用包装在 this.setState 的回调中,但它会抛出语法错误,如 ,预期

      this.setState(prevState => ({ 
condition: [...prevState.condition, { name: "readByGroup", operator: "IN ", value: groups }]
}))
}

this.props.getMetricsByContent(this.state.condition).then((data) => {
this.setState({isLoader: false});
if(data && Array.isArray(data) && data.length > 0){
let csvContent = papa.unparse(data);
this.download(csvContent, 'metrics.csv', 'text/csv;encoding:utf-8');
this.setState({statusMsg: "File Downloaded successfully"})
} else this.setState({statusMsg: "No records to download"})
})

我尝试过的内容如下:

this.setState(prevState => ({ 
condition: [...prevState.condition, { name: "readByGroup", operator: "IN ", value: groups }]

this.props.getMetricsByContent(this.state.condition).then((data) => {
this.setState({isLoader: false});
if(data && Array.isArray(data) && data.length > 0){
let csvContent = papa.unparse(data);
this.download(csvContent, 'metrics.csv', 'text/csv;encoding:utf-8');
this.setState({statusMsg: "File Downloaded successfully"})
} else this.setState({statusMsg: "No records to download"})
})
}))

最佳答案

我没有看到您在 this.setState 中的何处运行回调函数。

尝试:

   this.setState(prevState => ({ 
condition: [...prevState.condition, { name: "readByGroup", operator: "IN ", value: groups }]
}), () => {
this.props.getMetricsByContent(this.state.condition).then((data) => {
this.setState({isLoader: false});
if(data && Array.isArray(data) && data.length > 0){
let csvContent = papa.unparse(data);
this.download(csvContent, 'metrics.csv', 'text/csv;encoding:utf-8');
this.setState({statusMsg: "File Downloaded successfully"})
} else this.setState({statusMsg: "No records to download"})
}))
}

关键是箭头函数作为 setState 的下一个参数。

https://reactjs.org/docs/react-component.html#setstate

关于javascript - 如何在 setState 回调的回调中进行 axios 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com