我有错误:使用合成和使用ramda进行curry时,无法读取未定义的属性'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>
}
})
我尝试了什么:
我知道我错过了一些东西,但却看不出问题究竟在哪里。
谢谢
答案 0 :(得分:2)
我猜它不起作用,因为this
的值可能与您用来调用咖喱函数的_
绑定。咖喱函数使用箭头语法编写回调函数,该语法会自动将this
的值绑定到_