我正在与Redux一起使用React应用程序,但发现异常。我们一次将DOM元素放入商店中。这会导致Redux扩展出现问题,该扩展会在调用该操作时冻结,但其他情况下应用程序运行良好。
我们的代码如下所示:
function theAction(domElement) { // We got domElement with getElementById
return {
type: "THE_ACTION",
domElement
};
}
然后在我们的化简器中,我们只需将DOM元素放入存储中:
function theReducer(state, action) {
switch (action.type) {
case "THE_ACTION":
return {
...state,
domElement: action.domElement,
};
}
}
DOM元素是具有参考周期和特殊属性的复杂对象,因此我不确定这里的规则。那么,我是否打破了将DOM元素放入动作中的先决条件,又打破了将DOM元素放入商店中的先决条件?
最佳答案
不,non-serializable objects are explicitly not allowed inside dispatched actions or the Redux store。