私はエラーがあります:ラムダで合成およびカリングを使用するとき、プロパティ 'setState'を未定義に読み込むことができません。ここでramdaを使用して未定義のプロパティ 'setState'を読み取ることができません
は私のコードです:
const changeStateOf = _.curry((stateName, stateValue) => {
let obj = {}
obj[stateName] = stateValue
this.setState(obj)
})
const inputValue = (event) => {
return event.target.value
}
const App = React.createClass({
handleOnChange: _.compose(changeStateOf('input'), inputValue),
/* //This is working
handleOnChange: function(event) {
this.setState({input: event.target.value})
},*/
render: function() {
return <div>
<input onChange={this.handleOnChange} value={this.state.input} placeholder="Add something"/>
</div>
}
})
私が試したもの:
- handleOnChange
- に.bind(これを)追加の引数としてこれを渡しchangeStateOf で
I私は何かが欠落していることを知っていますが、問題がどこにあるのか正確にはわかりませ
はthis
の値は、あなたがカレーの機能を呼び出すために使用している_
で拘束される可能性がありますので、私はそのが機能していないと思い、あなたに
'onChange = {this.handleOnChange.bind(this)}'はうまくいくはずです。それはあなたが試みたものですか? –
あなたは 'changeStateOf( 'input')を試しましたか?bind(this)'? –
onChange = {this.handleOnChange.bind(this)}(あなたのために自動バインド機能に反応する警告を記録する)とhandleOnChange:_.compose(changeStateOf( 'input')、inputValue).bind(this)の両方を試みました。しかし、いずれも動作しません。 – Ahmed