我有两个对象数组。我想通过遍历这两个数组来设置变量的状态。
我有一个状态,
this.state = { selectedValue: {} }
我有这两个对象数组,
this.props.untracked.content && `this.props.tracked.content`
我要设定的状态是,
this.setState({
selectedValue: {
...this.state.selectedValue,
[`${resumeId}`]: type
}
}
在另一个不需要循环的地方。 现在我需要遍历这两个,然后需要setState,
我做了循环,
for (const item of
[...this.props.untracked.content,...this.props.tracked.content]) {
this.setState({
selectedValue: {
...this.state.selectedValue,
[`${item.id}`]: item.value
}
})
}
那么,有人可以帮助我吗?谢谢。
答案 0 :(得分:1)
最简单的方法是不使用function RandomLine($url) {
$f_contents = file($url);
return $f_contents[rand(0, count($f_contents) - 1)];
}
$line1 = RandomLine("/ime/ime.txt");
$line2 = RandomLine("/prezime/prezime.txt");
$line3 = RandomLine("/email/email.txt");
$result = "{$line1}{$line2}{$line3}";
echo $result;
进行所有处理,最后使用setState
一次。
答案 1 :(得分:1)
当新状态取决于当前状态时,请使用setState(oldState => newState):
this.setState(oldState => ({
selectedValue: {
...oldState.selectedValue,
[`${item.id}`]: item.value
}
}));
另外,最好事先准备所有更新:
const updates = {};
for (const item of
[...this.props.untracked.content,...this.props.tracked.content]
) {
updates[item.id] = item.value;
}
this.setState(oldState => ({
selectedValue: {
...oldState.selectedValue,
...updates,
}
}));