Я работаю над приложением React с Redux и увидел нечто необычное. Мы помещаем элемент 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 в хранилище?