【发布时间】:2018-06-19 09:53:58
【问题描述】:
我有以下代码:
class App extends Component {
constructor(){
super()
//this.buttonOneClick = this.buttonOneClick.bind(this);
}
buttonOneClick() {
const { setTestData } = this.props;
setTestData("test");
}
render() {
const { testData } = this.props;
return (
<div className="App">
<h1>Test App</h1>
<div>{testData}</div>
<button onClick={this.buttonOneClick}>Test</button>
</div>
);
}
}
组件 App 使用 react-redux 的 connect 方法导出,以将 setTestData-function 映射到 props(这是 setTestData 的来源)。
当我设置 buttonOneClick() 处理程序而不将组件上下文绑定到它时(请参阅 constructor() 中我的代码中注释掉的行)我收到以下错误:
无法读取未定义的属性“道具”
我知道不会定义 props,因为处理程序是在不了解 props 的全局上下文中执行的,但我如何理解错误,这意味着 this 本身没有定义,这没有意义对我来说。为什么会这样? this 不应该总是在任何执行上下文中定义吗?
提前致谢
【问题讨论】:
标签: javascript reactjs