【问题标题】:React JS: Cannot read property 'setState' of undefined when updating from React.createClassReact JS:从 React.createClass 更新时无法读取未定义的属性“setState”
【发布时间】:2017-09-27 10:58:58
【问题描述】:

我正在更新要使用的 React 组件:

类 SearchFilms 扩展了 React.Component

代替:

var SearchFilms = React.createClass({

当我运行此程序时,我收到以下错误:“无法读取未定义的属性 'setState'”

谁能建议我如何更新这个?

class SearchFilms extends React.Component { 
//var SearchFilms = React.createClass({

    getInitial() {
        return {
            userInput: ''
        };
    }

    onChange(event) {
        this.setState({
            userInput: event.target.value
        });
        this.props.newVal(event.target.value);
    }

    render() {
        var languages = ['Shutter Island', 'Inception', 'Titanic', 'Blood Diamond'];

        return (
            <div className="row" id="Nav">
                <input type="text" 
                    value={this.props.userInput}
                    onChange={this.onChange}
                />
            </div>
        )       
    }

}

【问题讨论】:

标签: reactjs components


【解决方案1】:

你在onChange中的thisundefined,是没有绑定造成的。

添加这些:

constructor(props) {
  super(props);
  this.onChange = this.onChange.bind(this);
}

仅供参考,

【讨论】:

  • 这很好用 - 谢谢!我现在可以看到哪里出错了
猜你喜欢
  • 2022-11-17
  • 2019-04-09
  • 2018-12-05
  • 2016-03-03
  • 2020-07-10
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
相关资源
最近更新 更多