我正在用ES6(使用BabelJS)编写一个简单的组件,并且功能this.setState
无法正常工作。
典型的错误包括类似
无法读取未定义的属性“ setState”
要么
this.setState不是一个函数
你知道为什么吗?这是代码:
import React from 'react'
class SomeClass extends React.Component {
constructor(props) {
super(props)
this.state = {inputContent: 'startValue'}
}
sendContent(e) {
console.log('sending input content '+React.findDOMNode(React.refs.someref).value)
}
changeContent(e) {
this.setState({inputContent: e.target.value})
}
render() {
return (
<div>
<h4>The input form is here:</h4>
Title:
<input type="text" ref="someref" value={this.inputContent}
onChange={this.changeContent} />
<button onClick={this.sendContent}>Submit</button>
</div>
)
}
}
export default SomeClass
亚力山大·柯森伯格(Alexandre Kirszenberg)是对的,但是要注意的另一件重要事情是放置绑定的位置。我已经被这种情况困扰了好几天(可能是因为我是一个初学者),但是与其他人不同,我知道bind(我已经申请过),所以我无法理解为什么我仍然会遇到这种情况错误。事实证明我绑定的顺序错误。
另一个可能是我在“ this.state”中调用函数的事实,该函数不知道绑定,因为它恰好位于绑定线上方,
以下是我所拥有的(顺便说一下,这是我的第一篇文章,但是我认为这非常重要,因为在其他任何地方都找不到解决方案):