// 这里是瞎写的,只是为了表达大概需求
const initialValue = {
a: {render: onChange}
};
function Compo(props) {
const [state, dispatch] = useReducer(reducer, initialState);
useEffect(() => {
// 这里会进行较为费时的操作
}, [state.a]);
return <div/>
function onChange () {
console.log(state);
}
}
如上initialValue中a属性的值依赖于onChange函数,如果不每次更新a,则当render被调用时onChange中打印出来的state将会是旧值。但若更新a,则会触发useEffect中的复杂计算导致性能问题。
想请教下大神一般是如何应对这个问题的哦
(PS:上面的例子是在使用antd table组件时所遇问题的简化)