开发者问题收集

为什么我会收到 TypeError:无法读取未定义的属性“length”?[关闭]

2019-04-16
52

我正在尝试编写一行条件语句来设置 React 组件 state 中的变量值。
请参阅下面提取的代码:

class ModuleInstance extends React.Component {
  // Initial module counter
  state = {
    assignments: this.props.assignments,
    params: [
      {single_assigment: this.props.assigments.length === 1 ? true : false}
    ],
  }

ModuleInstance 从其父类接收 assignments 作为传递的 prop,但是当尝试分配 single_assigment 时,它无法识别该 prop 并抛出 *TypeError: Cannot read property 'length' of undefined*
请记住,我对 Javascript 开发还很陌生,但如果有人能解释这有什么问题 - 我将不胜感激 :)

2个回答

确保您已传递正确的 this.props.assignments ,对 this.props.assignments 应用错误检查,然后更正拼写错误。

class ModuleInstance extends React.Component {
  // Initial module counter
  state = {
    assignments: this.props.assignments,
    params: [
      { single_assigment: (this.props.assignments && this.props.assignments.length === 1) ? true : false }
    ],
  }
}
D Mishra
2019-04-16

您在名称分配中有一个拼写错误,您在 g 后面缺少了 n

class ModuleInstance extends React.Component {
  // Initial module counter
  state = {
    assignments: this.props.assignments,
    params: [
      {single_assignment: this.props.assignments.length === 1 ? true : false}
    ],
  }
hawkstrider
2019-04-16