高次減速機を使用して、アプリの状態全体を置き換えることができます。
Higher Order Reducer
このリンクを参照してください。
この疑問がある場合は、コメントにお尋ねください。
const {combineReducers, createStore} = require('redux');
function todos(state=[], action){
switch (action.type) {
case 'ADD_TODO':
return [...state, action.data];
default:
return state;
}
}
var state = {
todos: ['todo1']
}
var reducers = combineReducers({
todos: todos
});
var store = createStore(HigherOrderReducer(reducers), state);
function HigherOrderReducer(reducers, initialState){
let higherState = {
state: initialState
}
return function(state = {}, action){
switch (action.type) {
case 'REPLACE_WHOLE_STATE':
higherState.state = action.data;
return higherState.state;
default:
return reducers(state, action);
}
}
}
store.subscribe(function(){
console.log(store.getState());
})
store.dispatch({
type: 'ADD_TODO',
data: 'todo2'
})
var newState = {
todos: ['task1', 'task2']
}
store.dispatch({
type: 'REPLACE_WHOLE_STATE',
data: newState
})
今、私はcombineReducerを使用しています。個々の減速機は状態の異なる部分を制御します。しかし、減速機Bに減速機Aが変化している状態を変更させる方法を明確にしていない。 – Leon
私はちょうど私の答えの例を追加します。あなたがdobutsを持っていれば、コメントで尋ねる。 – Vasi
作品かどうか – Vasi