私はこのエラーのためにstackoverflowをチェックしましたが、私が得た唯一の結果は関数をこれにバインドする必要があるということです。 しかし、私は自分のコードで行っており、エラーは依然として続きます。 なぜこれが起こっているのか理解できません。 CodePen上の完全なコードと矢印機能は、囲むクラス(この場合はコンポーネント)のコンテキストを継承してあなたは、コンストラクタでコールバックを再バインドする必要はありませんReact Uncaught TypeError:_this2.setStateは関数ではありません
class MainComponent extends React.Component{
constructor(props) {
super(props);
this.setOperand = this.setOperand.bind(this);
this.calculate = this.calculate.bind(this);
this.updateValue = this.updateValue.bind(this);
this.state = {
currentValue: 0,
secondValue: 0,
operand: null,
isNewNum: false
};
}
setOperand = (value) => {
//set data from input
};
calculate =() => {
//math stuff
this.setState = ({
currentValue: result,
isNewNum: false
});
};
updateValue = (value) => {
if(!this.state.isNewNum){ //first Number
var newNum = "";
//set values
this.setState({
currentValue: newNum
});
} else {
var newNum2 = "";
//set values
this.setState({
secondValue: newNum2
});
}
};
render(){
return(
<div id="main">
<p>isNewNum = {`${this.state.isNewNum}`}</p>
{this.state.isNewNum ? <Display display ={this.state.secondValue}/> : <Display display ={this.state.currentValue}/>}
<div>
<Buttons value={1} onClick={this.updateValue}/>
...
<Buttons value={'+'} onClick={this.setOperand}/>
</div>
</div>
)
};
}
ReactDOM.render(<MainComponent />, document.getElementById("root"));
しかし、 'setState'はあなたが値を割り当てることができる変数ではありません... –
それは全体のポイントです。プロトタイプチェーンは独自のプロパティ 'setState'を見つけ、それはもはや関数 –
ではありません。つまり、私は誤ってsetStateを割り当てました。それが問題の原因です。それへのすべての呼び出しは機能しなくなりました。どうもありがとうございます! – Eric