我正在与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

10-06 10:58