【发布时间】:2018-06-18 09:38:10
【问题描述】:
我说过要学习 React,但不明白如何正确使用 state。收到错误TypeError:
Cannot read property 'setState' of undefined
我不能使用setState(),也不知道为什么。请帮助我理解我做错了什么。我看过类似的问题,但他们并没有解决我的问题。
代码如下:
class App extends Component {
constructor(props) {
super(props);
this.state = {
currentPage : this.pageTemplates.loginPageTemplate
};
this.checkLogIn = this.checkLogIn.bind(this);
};
pageTemplates = {
loginPageTemplate: (
<div className="loginPage">
<div id='signIn'>
<div className='loginPageError'/>
<input placeholder="Enter your username" id="loginName" type="text"/>
<input placeholder="Enter your password" id="loginPass" type="password"/>
<input value="SIGN IN" id="logIn" onClick={this.checkLogIn} type="button"/>
</div>
</div>),
mainPageTemplate: (
<div id='MainPage'>
<div className='mainSidebar'>
</div>
</div>
)
};
render() {
return this.state.currentPage;
};
checkLogIn() {
this.setState({currentPage : this.pageTemplates.mainPageTemplate});
}
}
【问题讨论】:
-
为什么
this.pageTemplates.loginPageTemplate在该州?我想您需要存储当前页面状态,例如login或main。
标签: reactjs