Redux Store очищается после каждого действия - PullRequest
0 голосов
/ 09 мая 2018

Я новичок в Redux и живу в беде.

Каким-то образом после каждого действия весь мой магазин полностью очищается и выполняется только текущее действие. Я опишу ситуацию со скриншотом журнала действий.

Вот мое действие

function writeProduct(id) {
    return {
        type: 'WRITE_PRODUCT',
        id
    }
}

вот мой редуктор

case 'WRITE_PRODUCT':
    console.log("WRITE PRODUCT ACTION: ", action);
    console.log("state: ",state);
    return {
        productID: action.id
    };

А вот консольный журнал во время действия dispatch из writeProduct.

https://cdn1.imggmi.com/uploads/2018/5/9/c4cfc7debab662dfe241889d86254cd1-full.png

Что я делаю не так? Почему после каждой отправки предыдущий магазин перезаписывается?

Помогите мне, пожалуйста

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

хммм, я не знаю, почему весь магазин уничтожен, но

case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
    productID: action.id
};

должно быть

case 'WRITE_PRODUCT':
 console.log("WRITE PRODUCT ACTION: ", action);
 console.log("state: ",state);
return {
    ...state,
    productID: action.id
};

`` `state передается вашей функции редуктора

0 голосов
/ 09 мая 2018

Вы перезаписываете предыдущее состояние в вашем редукторе. Вы должны включить все предыдущее состояние и изменить только то, что должен делать редуктор.

Например. В вашем редукторе:

return {
    ...state,
    productID: action.id
};

Обратите внимание на часть ...state, которая включает в себя все предыдущее состояние в результате.

Я бы посоветовал вам ознакомиться с редукционными документами об неизменяемых обновлениях

Кроме того, ваш объект действия не соответствует требованиям FSA, возможно, вам следует прочитать об этом тоже.

...