gpt4 book ai didi

javascript - 无法使用 ramda 读取未定义的属性 'setState'

转载 作者:行者123 更新时间:2023-12-02 13:51:02 24 4
gpt4 key购买 nike

我遇到错误:使用 ramda 进行组合和柯里化(Currying)时,无法读取未定义的属性“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>
}
})

我尝试过的:

  1. 将 .bind(this) 添加到handleOnChange
  2. 将其作为参数传递给changeStateOf

我知道我错过了一些东西,但看不出问题到底出在哪里。

谢谢

最佳答案

我猜它不起作用,因为 this 的值可能与您用来调用 curry 函数的 _ 绑定(bind)。 curry 函数使用箭头语法编写回调,该语法自动将 this 的值绑定(bind)到 _

关于javascript - 无法使用 ramda 读取未定义的属性 'setState',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41028133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com