我正在用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”中调用函数的事实,该函数不知道绑定,因为它恰好位于绑定线上方,
以下是我所拥有的(顺便说一下,这是我的第一篇文章,但是我认为这非常重要,因为在其他任何地方都找不到解决方案):