react hooks中useReducer的初始值依赖于function时应该如何写?

// 这里是瞎写的,只是为了表达大概需求
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组件时所遇问题的简化)

阅读 1.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题