我想知道如何修复以下错误:
onChange={this.handleName}
我知道我应该在构造函数内部进行绑定,也不能在onChange内部进行绑定,有什么想法吗?
class Register extends React.Component {
constructor(props: Props) {
super(props)
this.state = {
name: '',
surname: '',
email: '',
}
}
handleName(e) {
this.setState({ name: e.target.value })
}
render() {
return (
<Dialog className={classes.root} open={isOpen}>
<TextField label="NAME" onChange={this.handleName} fullWidth />
</Dialog>
)
}
}
您需要将handleName
绑定到this
。
而不是:
onChange={this.handleName}
这样写:
onChange={this.handleName.bind}
。
这是因为您正在将函数引用传递给onChange
,因此当它执行时,它将超出您当前的范围,因为setState
将不存在。
由于函数handleName
未绑定到类,因此当前handleName
中的this
的范围是函数本身,而不是类。因此,该范围内没有setState
函数。
要更正此错误,可以将函数的绑定放入构造函数中。
constructor(props: Props) {
super(props)
this.state = {
name: '',
surname: '',
email: '',
}
this.handleName = this.handleName.bind(this,e);
}
也可以使用箭头语法定义函数
handleName = (e)=> {
...
}
问题内容: 有人可以解释一下为什么 this.setState 不是函数吗? 我不明白为什么我的代码有错误 谢谢 问题答案: 这是问题。使用。
我是React的新手,我正在尝试用API编写一个应用程序。我一直得到这个错误: TypeError:This.SetState不是函数 当我尝试处理API响应时。我怀疑这装订有问题,但我不知道如何修理它。下面是我的组件的代码:
我正在用Bootstrap 4做一个react项目。引导程序已通过CDN导入。 我想要的是在满足条件的情况下显示/隐藏一个模态。我已经导入了jquery 在组件中 但是在执行上面的行时,它会显示一个错误,如 我读到了这个错误,它说可能是因为jquery与CDN和NPM一起导入了两次。我不确定原因是什么。但我也尝试过从一个方法导入jquery,但它不起作用。有什么建议吗?
我正在一个WordPress网站上工作——它有大量的自定义代码和插件以及各种JQuery、引导和框架加载。 在最后一个加载页脚的最底部-I处: 我得到了错误: 显然,JQuery已经加载。我也尝试过在那里放置其他JQuery——除了加载的JQuery之外——我得到了相同的错误。 为什么我会得到$nota函数错误?
问题内容: 所以我有这个: newDealersDeckTotal只是一个数字数组,例如,但是没有给出正确的总数,但是呢?我什至设置了超时延迟,以查看是否可以解决问题。任何明显的还是我应该发布更多代码? 问题答案: 通常是异步的,这意味着在您处于状态时,它尚未更新。尝试将日志放入方法的回调中。状态更改完成后执行:
问题内容: 我正在做一个待办事项应用程序。这是违规代码的非常简化的版本。我有一个复选框: 这是调用复选框的函数: updateItem是映射为分派到redux的函数 我的问题是,当我调用updateItem操作并在console.log状态时,它总是落后1步。如果未选中该复选框且该复选框不为true,则仍将状态为true传递给updateItem函数。我是否需要调用另一个函数来强制状态更新? 问题