useEffect(() => { resPosition.forEach((item) => ((item.children.forEach((it) => ( optionPerson.push(it.value) ))))) optionPerson.map((item) => ({ value:item, })) console.log('optionPerson1',optionPerson) console.log('optionPerson2',optionPerson) },[resPosition,optionPerson]),为什么optionPerson.map((item) => ({ value:item, }))没有执行
时间: 2024-02-01 08:02:45 浏览: 149
C#并发实战记录之Parallel.ForEach使用
可能是因为你没有对 `optionPerson` 进行更新。在 React 中,`useState` 和 `useEffect` 都是异步的,因此在 `useEffect` 中更新了 `optionPerson`,并不会立即生效,需要等到下一次渲染才会生效。
如果你想要执行 `optionPerson.map((item) => ({ value:item }))`,你可以将它放在一个 useEffect 中,并将 `optionPerson` 作为依赖项,这样当 `optionPerson` 更新后,就会触发该 useEffect。例如:
```
useEffect(() => {
const options = optionPerson.map((item) => ({ value: item }));
console.log(options);
}, [optionPerson]);
```
这样,当 `optionPerson` 更新后,就会在控制台输出 `optionPerson` 的每个元素的 value 值。
阅读全文