私はreact-redux webapp
で作業しています。今まではすべての操作がajax
のリクエストに関連していましたので、redux thunk and axios
を使用しています。 今、「タスク」というオブジェクトからリストを作成するコンポーネントで作業しています。これは非常に単純なものでなければなりません:アクション呼び出しはタスクオブジェクトを送り、減速器は 'タスク'状態の配列でそれを追加します。還元剤の状態は空です
問題が発生した場合、リデューサは常にタスクオブジェクト配列を書き換えます。レデューサー呼び出しの開始時にconsole.logを実行すると、状態は常に空であることがわかります。
import {DROP_TASK} from '../actions/types'
export default function (state = {}, action) {
switch (action.type){
case(DROP_TASK):
console.log("state", state); // here is shows object{}
console.log('tasks', state.tasks);
if(state.tasks === undefined || state.tasks === null) {
return {...state, list: [action.payload]}
}
return {...state, list: [...state.tasks.list, action.payload]};
default:
return state
}
}
CREATESTOREでindex.jsで私がやっている
:ここ
はコードですロガーが直前に全体の状態をCONSOLE.LOGconst createStoreWithMiddleware = applyMiddleware(reduxThunk, logger)(createStore);
すべての発送の後に。だから、私は減速機機能のためのディスパッチの前に、 "タスク"が最初の呼び出しの後に設定されていることを知っています。
import { combineReducers } from 'redux';
import {reducer as form} from 'redux-form';
import {reducer as uiReducer} from 'redux-ui';
import authReducer from './auth_reducer';
import treeReducer from './tree_reducer';
import media_asset_list_reducers from './media_asset_list_reducers';
import tasks from './tasks';
const reducers = combineReducers({
form: form,
auth: authReducer,
tree: treeReducer,
media_asset_list: media_asset_list_reducers,
tasks: tasks,
ui: uiReducer
});
export default reducers;
誰も私を助けることができる:ここで
は、私は減速を組み合わせてる方法ですか?
ありがとうございました
申し訳ありませんが、私はちょうど結合レデューサーの部分を追加しました。 –
OK(state.tasks === undefined || state.tasks === null)が明らかに間違っている場合、この減算器が状態パラメータとして取得するものはすべてstate.tasksです。 –
はい、まったく正しいです!ありがとう! –