Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何更新状态以使搜索正常工作?_Reactjs - Fatal编程技术网

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);
   });
}