我的代码在下面有什么问题?基本上我不想在用户在开头或结尾输入额外空间时更新我的状态。如果输入字符串有空格,防止状态更新
handleSearchQuery = (e) = {
if(e.target.value.trim() != "") {
this.setState({
q: e.target.value
});
}
}
我的代码在下面有什么问题?基本上我不想在用户在开头或结尾输入额外空间时更新我的状态。如果输入字符串有空格,防止状态更新
handleSearchQuery = (e) = {
if(e.target.value.trim() != "") {
this.setState({
q: e.target.value
});
}
}
第一个错误似乎是您在您的箭头功能中忘记了>
。更改第一行:
handleSearchQuery = (e) => {
无论如何,这是我会怎么写全功能:
handleSearchQuery = (e) => {
let str = e.target.value.trim();
if(str != this.state.q) {
this.setState({
q: str
});
}
}
这修剪输入比较的q
现有状态。如果他们是平等的,没有任何反应。否则,更新状态。
我将字符串的修剪后的结果存储在一个变量中,因为我会另外需要trim()
两次......无论什么值得。
ouch不小心的错误 –
handleSearchQuery = (e) => {
if(e.target.value.trim() != this.state.q) {
this.setState({
q: e.target.value
});
}
}
简单的解决方案 - 'handleSearchQueury =(E)=> this.setState({Q:e.target.value.trim()})' –
@NirH,这将导致即使在重新绘制新的(修剪)值等于旧的。 – Chris
它不会,我建议阅读一下虚拟主机和和解 - https://facebook.github.io/react/docs/reconciliation.html –