【问题标题】:ERROR undefined state: Setting state to object from an array错误未定义状态:将状态设置为数组中的对象
【发布时间】:2017-07-29 23:42:14
【问题描述】:

将状态赋值为 null。

class App extends Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
    this.state = null;
  }

这就是一切出错的地方。 Select 等于数组中的一个对象。为什么我的控制台告诉我 setState 不能等于 undefined?

  assignCompany(id) {
    this.props.companies.forEach(function(company) {
      if (company.id === id) {
        var select = [];
        select = company;
        this.setState({select});
      }
    });
  }

呈现的代码。

  render() {
    this.assignCompany(1);
    return (
...
                  <CompanyProfile company={this.state.company} />
...

【问题讨论】:

  • 如果select 已经是一个对象,则不需要将其包装在{} 中尝试this.setState(select);。或者,如果您稍后这样称呼它:company={this.state.company} 或许可以使用 this.setState({company:select});

标签: javascript reactjs ecmascript-6 jsx


【解决方案1】:

你可以用不同的方式完成同样的事情

assignCompany(id) {
    this.props.companies.forEach(function(company) {
      if (company.id === id) {
        this.setState({company: company});
      }
    });
  }

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2020-09-10
    • 2020-04-29
    相关资源
    最近更新 更多