我想用计时器做一个函数来获取页数,每当计时器运行一次,参数页面加1 这是我的代码---
constructor() {
super();
this.state = {
data: '',
page: 0 ,
}
}
myFunc = () => {
let myFetchOptions = {
method: 'GET',
};
fetch("http://xxx/Api/screen/screenByAll.ashx?Status=All&ActionNm=8080&page="+this.setState( (page) => page++ )+"&rows=10",myFetchOptions)
.then( (response) => response.text() )
.then( (responseText) => {
const json = JSON.parse(responseText);
return json;
} )
.then(json => this.setState({data: json}) )
.catch( (error) =>{
console.error(error);
} );
}
componentWillMount(){
setInterval(this.myFunc, 3000);
}

答案 0 :(得分:0)
首先,setState是一个异步函数,组件的状态不会立即发生变异。我猜一些递归可以为你完成这项工作。 setState有第二个参数,它是一个在状态静音后调用的回调函数。您可以将参数添加到myFunc(pageNum)并检查它是否小于或等于您想要的页面数,并且在获取页面后调用相同的函数myFunc(pageNum + 1)。
如果你仍然需要函数调用之间的间隔,请在setTimeout中添加myFunc(pageNum + 1),如:
setTimeout(() => {this.myFunc( pageNum + 1)}, 3000)
并在componentWillMount
中调用myFunc(0)