我使用prop来呈现错误,只有在单击提交按钮后将错误返回到表单时才会触发错误。此功能正在运行,但是当表单加载时我正在设置控制台错误Cannot read property 'company' of undefined
。
路径:SingleInput props
const SingleInput = (props) => (
<FormGroup validationState={props.error ? 'error' : null}>
{props.error ? <HelpBlock>{props.error}</HelpBlock> : '' }
</FormGroup>
);
SingleInput.propTypes = {
error: PropTypes.string
};
路径:form
constructor(props) {
super(props);
this.state = {
careerHistoryPositions: [{company: '', errors: {} }],
};
}
render() {
return (
{this.state.careerHistoryPositions.map((careerHistoryPosition) => (
<div key={careerHistoryPosition.uniqueId} className="individual-position">
<SingleInput
error={careerHistoryPosition.errors['company']}
/>
</div>
))}
)
}
答案 0 :(得分:1)
问题出在这里。的 careerHistoryPosition.errors [ '公司'] 强>
careerHistoryPosition 是一个数组,您正在编写 careerHistoryPosition.errors ,当您尝试从数组中获取密钥时,这将是未定义的。然后你正在尝试从undefined获得公司的价值。