【发布时间】:2019-01-19 13:16:58
【问题描述】:
我对 React 还是很陌生。我正在尝试在 ReactJS 中映射数组的内容。目前,我没有结果渲染。这是我用来映射数组内容的代码部分:
return (
<div>
{this.state.errors.map( (error, index) =>
<div key={index} className="alert alert-danger" role="alert">
{error}
</div>
)}
</div>
)
这是我初始化状态的方式:
this.state = {
workoutId:'',
daysOfWeek:[],
name:'',
trainingPlan:'',
errors: []
}
这里是我填充错误数组的地方:
if(this.state.daysOfWeek.length < 1) {
this.state.errors.push('Must select at least 1 day to perform workout');
}
if(this.state.workoutId === '') {
this.state.errors.push('Please select a workout to edit');
}
console.log(this.state.errors);
我看到该数组正在使用 console.log 上的这些字符串填充。我对 React 的理解是,当发生更改时,组件会重新渲染自己。那是对的吗?无论如何,有人可以向我解释为什么我的数组内容不会呈现吗?我尝试过根据errors数组的长度是否大于0进行映射,这也不起作用。
【问题讨论】:
-
不能直接操作状态对象。
标签: javascript arrays reactjs