使用 react-redux,通过 redux 状态将回调函数传递给通用组件的最佳做法是什么?

Using react-redux, what is the best practice to pass a callback function to a generic Component through the redux state?

这是一个简单的案例,我想创建一个带有确认按钮的通用模态组件。单击按钮后,它将触发我们通过 redux 状态提供的 onConfirm 函数。并且可以在 thunk 动作中调度 openModal 动作。

//Example using thunk after click submit a form
const handleSubmitForm = dispatch => e => {
    dispatch(openModal({
       title: "confirm modal",
       onConfirm: () => { /* dispatch other stuff, async etc..)*/ }
    }))
}

但是,问题在于 redux 建议不要将任何不可序列化的值(如函数)传递给状态。并且在使用 redux-toolkit 时,会产生错误信息“A non-serializable value was detected in the state”。所以我想知道执行此类操作的最佳做​​法是什么。

其他用例:

简单模态 CodeSanbox: https://codesandbox.io/s/black-mountain-wnytg?file=/src/containers/App.js

最好的做法是不要在 redux 中存储任何函数(尽管它在技术上是可行的)。相反,您应该存储调用回调所需的任何参数,并使用动作创建者函数实际进行调用。在您的示例中,您可以存储 modalTypemodalTitle