1
私はRamdaを使って反応するアプリケーションを構築しています。ラムダと反応してsetStateを構成する
{
"datasets": [foo, bar]
}
だから私はこれを達成するためにcomponentDidMountメソッドを使用しました:ページのロードには、私はいくつかのデータをロードし、それは次のようになりますので、私の状態でそれを入れたいときに。
componentDidMount() {
fetch('/api/dataset/')
.then(res => res.json())
.then(datasets => this.setState(R.assoc('datasets', datasets)))
}
これは動作しますが、その後、私はそれもスリッカーこれは動作しませんR.compose
componentDidMount() {
fetch('/api/dataset/')
.then(res => res.json())
.then(R.compose(this.setState, R.assoc('datasets')))
}
を使用して作ることができると思った、それは私にエラーを与える:
TypeError: Cannot read property 'enqueueSetState' of undefined
at r.setState (ReactBaseClasses.js:62)
at _pipe.js:3
at _arity.js:14
at <anonymous>
なぜこれが起こるのですか?それは「これ」の拘束と関係がありますか?
this.setState.bind(これは)でこれをか? –
ありがとう、this.setState = this.setState.bind(this)をコンストラクタに追加すると、問題が解決しました –
素敵!がんばろう –