【发布时间】:2020-02-18 14:37:49
【问题描述】:
我正在创建一个搜索页面组件,其中包含许多用于过滤搜索结果的输入。
每个输入都会更改组件的状态,并应触发 AJAX 调用以刷新搜索结果:
handleSearchStringChange(event) {
this.setState({
filterSearchString: event.target.value
});
loadSearchResults(event.target.value);
}
render() {
return (
// ...
<input type="text" value={this.state.filterSearchString} onChange={this.handleSearchStringChange} />
// ...
);
}
这一切都很好,但是,一旦您添加更多过滤器,将所有过滤器值传递给loadSearchResults() 变得很麻烦。
我想做的是像上面那样使用setState() 更新组件的状态,然后让loadSearchResults() 单独从状态构建AJAX 请求。
我现在不能这样做,因为setState() 是异步的,这样做会使loadSearchResults() 使用可能过时的数据。
有什么方法可以在setState() 完成之后触发 AJAX 调用?
【问题讨论】:
标签: reactjs