Reactjs 如何更新状态以使搜索正常工作?
如何更新状态以使搜索正常工作 我尝试进行搜索,但得到了以前的状态: 例如: 我写:谷歌 控制台:谷歌Reactjs 如何更新状态以使搜索正常工作?,reactjs,Reactjs,如何更新状态以使搜索正常工作 我尝试进行搜索,但得到了以前的状态: 例如: 我写:谷歌 控制台:谷歌 const onHandleSearchResult=e=>{ 设置搜索值(如目标值); }; 从您的示例来看,在状态下设置值后,您似乎正在执行控制台.log。我相信您的代码如下所示: setSearchValue = (searchedValue) => { this.setState({ searchedValue }); console.log('searchedValu
const onHandleSearchResult=e=>{
设置搜索值(如目标值);
};
从您的示例来看,在状态下设置值后,您似乎正在执行控制台.log
。我相信您的代码如下所示:
setSearchValue = (searchedValue) => {
this.setState({ searchedValue });
console.log('searchedValue:', this.state.searchedValue);
}
然而,上面的代码不会像您在问题中提到的那样工作。原因是它是异步的。如果要显示正确的状态值
,请使用设置状态
中的回调函数。e、 g
setSearchValue = (searchedValue) => {
this.setState({ searchedValue }, () => {
console.log('searchedValue:', this.state.searchedValue);
});
}
通过这种方式,console.log
仅在值设置为状态时才会发生,您介意包括一个工作示例吗?该代码段应该能够通过Babelit进行渲染,从您的示例中很难看出,但是setSearchValue是异步函数,因此您的console.log可能会输出googl,因为它尚未更新。尝试使用异步等待that@reacter上述答案对你有帮助吗?
setSearchValue = (searchedValue) => {
this.setState({ searchedValue }, () => {
console.log('searchedValue:', this.state.searchedValue);
});
}