gpt4 book ai didi

reactjs - 如何延迟 React 中的 componentDidMount API 获取?

转载 作者:行者123 更新时间:2023-12-04 03:02:49 25 4
gpt4 key购买 nike

我正在使用 Axios 获取数据,并希望延长加载动画的时间(出于个人原因)。

  componentDidMount(){
var that = this;
axios.get('api.something.io.json', {
params: data
})
.then(function (response) {
console.log(response);
that.setState({
axiosResponse: response.data,
isLoading: false
})
})
.catch(function (error) {
console.log(error);
});
};
...
render() {
if(this.state.isLoading){
return <div>Waiting...</div>
}

return (
<div className="App">
<h1>{this.state.axiosResponse.awesomeTitle}</h1>
</div>
);

现在 Waiting... 在主要组件呈现之前显示一瞬间。我想将 “Waiting...” 延长一点,大约 2-3 秒。我尝试使用 setTimeoutcomponentDidMount 上,但似乎没有用。

componentDidMount(){
setTimeout(this.setState({isLoading: 1}), 3000);
//do axios call here
}

我还尝试在 .then 调用中 stub setTimeout:

  componentDidMount(){
var that = this;
axios.get('https://api.rss2json.com/v1/api.json', {
params: data
})
.then(function (response) {
console.log(response);
setTimeout(
that.setState({
axiosResponse: response.data,
isLoading: false
})
, 3000);

})
...

都没有用。如何将 isLoading 延长 3 秒?

最佳答案

setTimeout 接受函数作为第一个参数:

    setTimeout(function() {
that.setState({
axiosResponse: response.data,
isLoading: false
})
}, 3000);

而不是:

     setTimeout(
that.setState({
axiosResponse: response.data,
isLoading: false
}), 3000);

关于reactjs - 如何延迟 React 中的 componentDidMount API 获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47611530/

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