Reactjs 使用react-redux,通过redux状态将回调函数传递给泛型组件的最佳实践是什么?

Reactjs 使用react-redux,通过redux状态将回调函数传递给泛型组件的最佳实践是什么?,reactjs,redux,react-redux,callback,modal-dialog,Reactjs,Redux,React Redux,Callback,Modal Dialog,这里有一个简单的例子,我想创建一个带有确认按钮的通用模态组件。单击按钮后,它将启动我们通过redux状态提供的onConfirm函数。OpenModel动作可以在thunk动作中调度 //Example using thunk after click submit a form const handleSubmitForm = dispatch => e => { dispatch(openModal({ title: "confirm modal&q

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

//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时,它将生成一条错误消息“在状态中检测到不可序列化的值”。因此,我想知道执行此类操作的最佳实践是什么

其他用例:

  • 将回调函数分派到状态并联系web套接字服务器。然后websocket服务器与触发callbcak的东西进行通信

简单模式代码sanbox:

最佳做法是不在redux中存储任何函数(尽管它在技术上可以工作)。相反,您应该存储调用回调所需的任何参数,并使用action creator函数实际进行调用。在您的示例中,可以存储
modalType
modalTitle
,等等