1
當我直接使用Redux的減速機,我得到預期的狀態:使用終極版combineReducers是創建一個嵌套的狀態
import cheese from 'reducers/cheese.js';
const store = createStore(cheese);
<Provider store={ store } >
...
</Provider>
結果:
cheese: "cheddar"
但是當我使用combineReducer
我得到一個嵌套狀態
import cheese from 'reducers/cheese.js';
import crackers from 'reducers/crackers.js';
const reducer = combineReducers({ cheese, crackers });
const store = createStore(reducer);
<Provider store={ store } >
...
</Provider>
結果:
cheese: { cheese: "cheddar" }
這導致淺狀態比較驗證,並且我的組件不更新。 (編輯:這種假設可能是假的)
編輯:
我的理想狀態是這樣的(這是個什麼樣子使用單個減速時等):
{
cheese: "cheddar",
crackers: "ritz"
}
編輯:
我的減速器是這樣的(兩者相同):
const initialState = {
cheese: 'cheddar'
};
export default function reducer(state = initialState, action = {}) {
switch (action.type) {
case 'newCheese':
console.log(action.newCheese); // "cheddar"
return {
...state,
cheese: action.newCheese
};
default:
return state;
}
}
這是combineReducers'的'的目標,所以我不知道你的問題是什麼,因爲它的表現如預期。你的'奶酪'減速器似乎會返回一個對象,而不是一個值。 – RIAstar
你想如何結合奶酪和薄脆餅乾來照顧國家?你可以編輯你的問題,並提供您的預期輸出? –
我編輯了這個問題 - 謝謝! – Sauce