javascript - 在 react 中如何避免这种类型的错误?

标签 javascript reactjs

大家好,我正在这里从事 ReactJS 项目,如果您想帮助我,我有一个问题,谢谢您的帮助 我传递了我的数据<StoryMap data={this.state.data} />到我的函数,这样我就可以将事件和任务推送到行为和任务“json 格式”

function StoryMap(props) {
  var acts = [];
  var taskss = [];

  for (var i = 0; i < props.data.activities.length; i++) {
    acts.push(props.data.activities[i]);
    console.log(acts)
    for (var j = 0; j < props.data.activities[i].tasks.length; j++) {
      taskss.push(props.data.activities[i].tasks[j]);
      console.log(taskss)

    }
  }
  console.log(acts);
  return (
    <table border="1">
      <tr></tr>
    </table>
  );
}

在控制台输出中,console.log 工作正常,但有错误 × 类型错误:无法读取未定义的属性“长度”

error

最佳答案

您需要在使用之前检查 props.data.activities 是否存在,因为在初始渲染期间 this.state.data 在父组件中最初可能为空,并且您可以稍后再填充它

function StoryMap(props) {
  var acts = [];
  var taskss = [];

  if(props.data.activities) {
    for (var i = 0; i < props.data.activities.length; i++) {
      acts.push(props.data.activities[i]);
      console.log(acts)
      for (var j = 0; j < props.data.activities[i].tasks.length; j++) {
        taskss.push(props.data.activities[i].tasks[j]);
        console.log(taskss)

      }
    }
  }
  console.log(acts);
  return (
    <table border="1">
      <tr></tr>
    </table>
  );
}

关于javascript - 在 react 中如何避免这种类型的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49401961/

相关文章:

javascript - 使用 NodeJS 从 package.json 获取名称属性

javascript - 无法识别同一片谷歌饼图的立即选择

javascript - 使用 Angular ionic 状态传递参数

javascript - React router - 动态路由 - 通过路由器访问状态对象

javascript - React + Foundation - 单击时使用不同的 Prop 渲染模态

javascript - 如何应用我的 React 样式与三元运算符内联?

javascript - 寻找一两个与锁定和更新调度相关的 Node 模块

javascript - 如果从特定包运行,Monorepo 中的 Jest 不起作用

reactjs - `routeDepth` 中未指定所需的上下文 `RouteHandler`

javascript - ESLint 错误 - ESLint 找不到配置 "react-app"