Javascript 无法读取属性';设置状态';使用ramda定义未定义的
我有一个错误:在使用composition和使用ramda进行转换时,无法读取undefined的属性“setState” 这是我的密码:Javascript 无法读取属性';设置状态';使用ramda定义未定义的,javascript,reactjs,ramda.js,Javascript,Reactjs,Ramda.js,我有一个错误:在使用composition和使用ramda进行转换时,无法读取undefined的属性“setState” 这是我的密码: const changeStateOf = _.curry((stateName, stateValue) => { let obj = {} obj[stateName] = stateValue this.setState(obj) }) const inputValue = (event) => { return eve
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>
}
})
const changeStateOf=\ curry((stateName,stateValue)=>{
设obj={}
obj[stateName]=状态值
此设置状态(obj)
})
常量输入值=(事件)=>{
返回event.target.value
}
const App=React.createClass({
handleOnChange:u0.compose(changeStateOf('input'),inputValue),
/*//这起作用了
更改:功能(事件){
this.setState({input:event.target.value})
},*/
render:function(){
返回
}
})
我尝试的是:
谢谢我想它不起作用了,因为
这个
的值可能与您用来调用curry函数的\uu
绑定在一起。curry函数使用箭头语法编写回调函数,该语法自动将this
的值绑定到我猜它不起作用,因为this
的值可能与用于调用curry函数的
绑定。curry函数使用箭头语法编写回调函数,该语法自动将this
的值绑定到。看起来onChange={this.handleOnChange.bind(this)}
应该可以工作。这就是您尝试过的吗?您尝试过changeStateOf('input').bind(this)
?尝试过onChange={this.handleOnChange.bind(this)}(它记录了一个警告,为您响应自动绑定函数)和handleOnChange:\ uu.compose(changeStateOf('input'),inputValue).bind(this)。但是没有works@TelmanAgababov是的,也试过了:/看起来onChange={this.handleOnChange.bind(this)}
应该可以工作。这就是您尝试过的吗?您尝试过changeStateOf('input').bind(this)
?尝试过onChange={this.handleOnChange.bind(this)}(它记录了一个警告,为您响应自动绑定函数)和handleOnChange:\ uu.compose(changeStateOf('input'),inputValue).bind(this)。但是没有works@TelmanAgababov是的,也尝试了此方法:/i我想它不起作用,因为此方法的值可能与用于调用curry函数的“”绑定。curry函数使用arrow语法编写回调函数,该语法会自动将其值绑定到“尝试删除arrow函数并使用简单函数”。但是仍然不起作用…你把这个简单函数和所需的绑定在一起了吗?调用这个简单函数时也要用call()函数调用它好的,它现在起作用了,我不知道为什么!我使用了普通的函数定义,它在没有绑定的情况下工作。(这里发生了一些神奇的事情…)如果我帮了你…为什么不试试upvoting呢?我想它不起作用,因为它的值可能与你用来调用curry函数的“”绑定。curry函数使用arrow语法编写回调函数,该语法会自动将其值绑定到“尝试删除arrow函数并使用简单函数”。但是仍然不起作用…你把这个简单函数和所需的绑定在一起了吗?调用这个简单函数时也要用call()函数调用它好的,它现在起作用了,我不知道为什么!我使用了普通的函数定义,它在没有绑定的情况下工作。(这里发生了一些魔法…)所以如果我帮了你…你为什么不试试投票呢