我正在桌面上进行实时搜索栏功能。我使用输入字段并将onCeyUp绑定到handleChange函数,该函数使用输入字段中的值设置状态:搜索值。这将传播到我的表并触发搜索。它对任意数量的字符都可以正常工作,甚至在删除字符串时也只有一个字符。
handleChange (e) {
this.setState({searchVal: e.target.value});
}
当我删除输入字段中的所有字符并且e.target.value给我""时,什么不起作用。当它使用空字符串设置状态时,它根本不会触发重新渲染,因此我的搜索功能不会发生。我不明白为什么?如果我将searchVal硬编码为null或未定义,则情况相同。
编辑:发现它确实会触发重新渲染,因为componentWillReceiveProps和componentWillUpdate确实发生了,但componentDidUpdate没有,这就是我处理搜索值的地方。
编辑:原来它重新渲染,我正在检查是否真空,这将排除空字符串。我的坏。
答案 0 :(得分:0)
好吧,这里描述的问题发生在我身上。如果返回“”,状态将被更新,但页面不会重新呈现。我采取了一种解决方法:
if (result.file.length !== 0){
this.setState({text: result.file})
} else {
this.setState({text: " "})
}
有效。