初始化状态反应,在页面首次呈现时解决未定义

时间:2017-08-13 17:30:33

标签: javascript reactjs dictionary initialization state

我想要映射状态,但是该状态(状态的名称是"任务",它是父状态的孩子,称为"时间表"," ;时间表"状态已使用componentWillMount定义)仍未定义UNTIL已在我的页面内触发(单击按钮)动作创建者。但是,我已经在jsx中定义了timesheet.task.map,因此页面无法加载并显示错误"无法读取未定义的属性映射"。 code 正如你在这里看到的,我想要列出一个选择'触发事件时调用的状态选项(页面呈现时仍未定义),但页面无法加载,因为第一次加载页面时,timesheet.task仍未定义

你知道如何解决这个问题吗?我想要初始化州,但我不知道该怎么做。非常感谢你!

1 个答案:

答案 0 :(得分:0)

很常见的情况。在render()的顶部 - 只需添加一个条件来检查该值是否有效..类似于:

if (!this.state.timesheet.task) {
  return <p> waiting for my value </p> // add any generic component to here that would await your value 
}

根据您的页面布局,您可能只想创建一个小组件,以便在等待填充值时作为条件注入。