javascript - 这个内部反应类组件的工作方式不同
问题描述
我是 React 新手,如果我尝试访问openm2()
using this.openm2()
inopenm
方法,则会出现错误
“无法读取未定义的属性‘openm2’”
class Car extends React.Component {
openm2() {
return "Hello from openm2";
}
openm(e) {
e.preventDefault();
this.openm2(); Here I get error
}
render() {
return (
<div>
<h1>
{this.props.type.map((item, index) => {
return <p key={index}>{item}</p>;
})}
</h1>
<form onSubmit={this.openm}>
<input type="text" name="type" />
<button>Remo all</button>
</form>
</div>
);
}
}
解决方案
将您的功能更改openm
为箭头功能,它this
会自动绑定到功能。
openm = (e) => {
e.preventDefault();
this.openm2(); Here I get error
}
或者,您可以像这样绑定this
,
<form onSubmit={this.openm.bind(this)}>
this
或者,您可以在构造函数中绑定
constructor(props){
super(props);
this.openm = this.openm.bind(this)
}
推荐阅读
- c++ - 如何将浮点值转换为 quint16 数组?
- ios - 您可以本地化 Custom.plist 文件吗?
- python - 我无法正确使用 wxpython
- functional-programming - 在某个列表的前 b 个碱基中找到第一个回文数
- c# - Neo4j APOC A* 通过路径
- angular - 如何在谷歌登录中启用旧策略 API
- docker - 将 docker-compose 迁移到 Kubernetes
- python - dagster 管道在使用 `execute_pipeline` 运行时成功执行,但在使用 dagit 运行时不成功
- tuples - 一个元组有多少个元素?
- interpolation - 从重心坐标获取插值法线