我在尝试什么?
尝试在状态中设置输入类型文本的值
到目前为止我搜索了什么?
React - 未捕获类型错误:无法读取未定义的属性“setState”
但这并不能回答我的问题
错误详情
类型错误:无法读取未定义的属性(读取“setState”)
在函数setEmailVal中设置email的值时出现此错误
成分
import React from 'react';
class Login extends React.Component {
constructor(props) {
super(props);
this.state = {email: ""};
}
setEmailVal(val) {
this.setState({email: val.currentTarget.value});
}
render() {
return (
<input type="text" onChange={this.setEmailVal} value={this.state.email} />
);
}
}
export default Login;
Run Code Online (Sandbox Code Playgroud)
for*_*ern 13
如果您通过以下方式声明您的函数
setEmailVal = val => {
this.setState({email: val.currentTarget.value});
}
Run Code Online (Sandbox Code Playgroud)
效果很好。
如果您希望以其他方式(旧的,如果我没记错的话)方式执行此操作,那么您需要将函数绑定到子组件的类,即类中的 onChange 处理程序以“查看”它:
constructor(props) {
super(props);
this.state = {email: ""};
this.setEmailVal = this.setEmailVal.bind(this);
}
Run Code Online (Sandbox Code Playgroud)
最后,您可以在返回组件本身内部进行直接绑定
return (
<input type="text" onChange={this.setEmailVal.bind(this)} value={this.state.email} />
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11751 次 |
| 最近记录: |