我有一个通知类,通知消息应该从outsiede设置。现在它声明没有定义this.setState。我该如何解决这个问题?
阵营:
const Notification = React.createClass({
statics: {
createAlert: function(message) {
this.setState({message: message});
}
},
getInitialState: function() {
return {
message: '',
};
},
答案 0 :(得分:1)
静力学没有实例。这是整个静态点,即它们在类之间共享,因此this
上下文不会起作用。你不应该用静力学做这件事。我只使用ES6语法,所以这可能在语法错误。
const Notification = React.createClass({
setMessage: function(message) {
this.setState({message: message});
}
getInitialState: function() {
return {
message: '',
};
}
render: function() {
return (
//Pass the setMessage function as a prop to a child class
//You will need to .bind() setMessage somewhere
<ChildClass setMessage={this.setMessage} />
)
}
});
const ChildClass = React.createClass({
doSomething: function() {
this.props.setMessage("Hello");
}
render: function() {
return (
)
}
});
如果子类嵌套在多个级别,那么使用像redux,flux这样的状态管理,或者你可以使用React的上下文。