我ama beginer in recatjs,我的问题是我有一个方法在我的组件有一个参数(this.state.t)
,错误说我“t”没有定义。这是我的代码使用this.state方法与参数this.state.parameter
this.state = {
t: 5 ,
a:this.give(this.state.t)
}
...
give(B){
...
}
我ama beginer in recatjs,我的问题是我有一个方法在我的组件有一个参数(this.state.t)
,错误说我“t”没有定义。这是我的代码使用this.state方法与参数this.state.parameter
this.state = {
t: 5 ,
a:this.give(this.state.t)
}
...
give(B){
...
}
您将无法在其自己的声明中使用this.state
。您应该设置componentDidMount
函数的状态,如
this.state = {
t: 5 ,
a:null
}
...
handleClick =() => {
var a = this.give(this.state.t);
this.setState({a});
}
give(B){
...
}
<button onClick={this.handleClick}>Click</button>
我认为,我们不能将一个变量的状态里面,你可以做一两件事, 最初是在构造函数变量赋值t
。此后在构造函数的末尾调用this.give()
函数。
constructor(){
super()
this.state = {t:5}
this.give = this.give.bind(this)
this.give(this.state.t)
}
give(a){
youroperation with a
}
谢谢朋友的回答。 –
你确定吗?任何方式来分配一个状态内的变量? –
非常感谢你,il是最好的解决方案。 –
但我有一个问题,我不应该使用componentDidMount :(。 –
为什么你不能使用它 –