【发布时间】:2021-08-23 12:46:01
【问题描述】:
所以我的问题是我想使用一个函数来生成我的初始状态,然后在我的减速器中使用该生成的状态。
我的 App 组件函数之外有这个 StateGenerator() 函数,它返回一个大数组。
如果我这样写:
const [boardState, tileDispatchFn] = useReducer(
tileReducer,
StateGenerator()
);
它可以工作,但是 StateGenerator() 函数在每次渲染时都会执行(这正常吗??)尽管状态没有重置为初始状态(我猜这很好??)
但是每次渲染都会执行这些函数,并且它会生成一个相当大的数组,如果我通过点击它来快速渲染就会中断
如果我这样写:
let initState = null;
useEffect(() => {
initState = StateGenerator();
}, []);
const [boardState, tileDispatchFn] = useReducer(
tileReducer,
initState
);
我收到这样的错误 Cannot read property ... of null 因为 useEffect 是在渲染之后执行的
使用我的 StateGenerator() 函数生成初始状态的最简单方法是什么?最好的方法是什么?
【问题讨论】:
标签: reactjs react-hooks