1. ホーム
  2. react-native

[解決済み] React native reduxのreducerで配列に要素を追加するにはどうすればいいですか?

2022-04-21 17:15:43

質問

配列に要素を追加する方法 arr[] をReduceすることができますか? 私はこうしています

import {ADD_ITEM} from '../Actions/UserActions'
const initialUserState = {
    arr:[]
}

export default function userState(state = initialUserState, action)
{
    console.log(arr);
    switch (action.type)
    {
        case ADD_ITEM: 
            return { 
                      ...state,
                      arr: state.arr.push([action.newItem])
                   }

        default:
            return state
    }
}

解決方法は?

この質問は露出が多いので。

この質問の答えを探している人は、かなりの確率で あなたは非常に古いReduxチュートリアルに沿っている .

公式の推奨(2019年以降)は 公式のRedux Toolkitを使ってモダンなReduxのコードを書こう .

特に、文字列のアクション定数をなくし、アクションクリエイターを生成してくれるようになるのです。

で作成したReducersに変異ロジックを書くだけのメソッドも採用される予定です。 createReducer または createSlice ということで 最近のReduxでは、Reducersにimmutableなコードを書く必要はありません。 そもそも

に従ってください。 Redux公式チュートリアル Redux Toolkitをどのように使用するかは、サードパーティのチュートリアルの代わりに、常に最新の情報を得ることができます。

比較のために、モダンなReduxでは次のようになります。

const userSlice = createSlice({
  name: "user",
  initialState: {
    arr:[]
  },
  reducers: {
    // no ACTION_TYPES, this will internally create a type "user/addItem" that you will never use by hand. You will only see it in the devTools
    addItem(state, action) {
      // you can use mutable logic in createSlice reducers
      state.arr.push(action.payload)
    }
  }
})

// autogenerated action creators
export const { addItem } = slice.actions;

// and export the final reducer
export default slice.reducer;