我有两个states
,一个state
设置为一个数字,另一个设置为function
returns
第一个状态。我收到错误:
未捕获的TypeError:无法读取属性' count'未定义的
以下是摘录:
constructor(props) {
super(props);
this.state = {
count: 5,
date: this.full()
};
};
full = () => {
return this.state.count;
};
这里是codepen链接: http://codepen.io/abdolsa/pen/wJXPqb?editors=0010
我认为这可能是binding
的问题,但我还没有解决它。
谢谢
答案 0 :(得分:0)
你做错了。分配给this.state内部构造函数的值不是availbale直到初始渲染。如果要在componentWillMount
或componentDidMount
方法中设置具有其他状态值的状态,请执行此操作。
如果您这样做:
full = () => {
return 5;
};//it will work.
所以解决方案是,
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {
count: 5,
date: ""
};
this.full = this.full.bind(this);
};
componentWillMount ()
{
this.setState({date:this.full()})
}
full = () => {
return (this.state.count);
};
render() {
console.log(this.state)
return (
<h2>{this.state.date}.</h2>
);
}
}
ReactDOM.render(<Clock />, document.getElementById('root'));