无法使用 ramda 读取未定义的 属性 'setState'
Cannot read property 'setState' of undefined using ramda
我遇到错误:使用 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>
}
})
我尝试了什么:
- 将 .bind(this) 添加到 handleOnChange
- 将其作为参数传递给 changeStateOf
我知道我遗漏了一些东西,但看不出问题到底出在哪里。
谢谢
我猜它不起作用,因为 this
的值可能与您用来调用 curry 函数的 _
绑定。 curry 函数使用箭头语法编写回调,自动将 this
的值绑定到 _
我遇到错误:使用 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>
}
})
我尝试了什么:
- 将 .bind(this) 添加到 handleOnChange
- 将其作为参数传递给 changeStateOf
我知道我遗漏了一些东西,但看不出问题到底出在哪里。
谢谢
我猜它不起作用,因为 this
的值可能与您用来调用 curry 函数的 _
绑定。 curry 函数使用箭头语法编写回调,自动将 this
的值绑定到 _