2017-04-16 138 views
0

enter image description here我无法访问通过道具传递给我的EditField组件的对象的键。当我记录传递给控制台的道具时,它会正确输出对象,但是当我尝试获取该对象的任何键时,我会得到一个“未定义的错误”。这个对象是什么?图片上是做的console.log(部门),当我得到大家看看我的代码的对象:无法访问对象的属性

class EditForm extends React.Component { 
render() { 
const departments = this.props.departments 
const showcasedDepName = this.props.showcasedDepName 
const dep = departments.filter(dep => dep.depName === 
showcasedDepName)[0] 
return(
     ...irrelevant stuff 
     <EditField department={dep}/> 
    </form> 
    </div> 
) 
} 
} 

EditField中成分:

class EditField extends React.Component { 
render() { 
const department = this.props.department 
console.log(department.depName) //"undefined", whereas it shows me the correct object when I do console.log(department) 
return(
    <div className="edit-dep"> 
    <div>Department name: <input type="text" value= 
{department.depName}/></div> 
    </div> 
) 
} 
} 
+0

你可以添加对象的结构吗?或者什么在console.log(部门) –

+0

添加到帖子 – Umbrella

+0

尝试console.log(部门[0] .depName) –

回答

0

我定了!问题来自我没有预料到的问题。我计算了componentDidMount函数中的工作量,其中我将'depAmount'键的状态从null更改为worker数组的长度。当我用componentWillMount替换componentDidMount时,问题消失了。我猜为什么我有这个错误的原因是最初使用空值呈现的状态。