React Native – installazione Redux Toolkit

Redux è senza dubbio una delle librerie per la gestione dello stato più usata in progetti React Native. In questa breve guida mostro i principali passaggi e sintassi per usare questa libreria nell’ultima versione Toolkit che estende e semplifica l’implementazione della stessa.
Per maggiori info riguardo Redux Toolkit: https://redux-toolkit.js.org/

Installare le dipendenze necessarie

Per utilizzare Redux toolkit dobbiamo installare nel nostro progetto le seguenti dipendenze:

$npm install react-redux
$npm install @reduxjs/toolkit

Creare Reducer e azioni

Una delle principali novità introdotte con Toolkit è la possibilità di creare il reducer e le relative azioni attraverso un’unica funzione chiamata createSlice( ). La sintassi è la seguente:

import { createSlice } from '@reduxjs/toolkit';

export const homeStore = createSlice({
  name: 'home',
  initialState: [],
  reducers: {
    addProduct(state, action) {
      state.push(action.payload);
    },
    deleteProduct(state, action) {
      const index = state.findIndex((p) => p.id === action.payload);
      state.splice(index, 1);
    },
  },
});

export const {addProduct, deleteProduct} = homeStore.actions;

export default homeStore.reducer;

Una cosa importante da notare è l’aggiornamento dello stato. Grazie a Redux Toolkit non dobbiamo usare l’immutabilità per aggiornare lo stato ma possiamo agire direttamente su di esso come vediamo ad esempio nella riga 8 (state.push(action.payload)). Questo è possibile grazi ad Immer.js che è direttamente incluso in Toolkit.

Configurazione store

Per prima cosa creiamo lo store utilizzando combineReducers e configureStore. La sintassi è la seguente:

import { combineReducers, configureStore } from '@reduxjs/toolkit';
import homeReducer from '../Pages/home/store/homeStore';


const rootReducer = combineReducers({
  home: homeReducer,
//altri reducers...
});

const store = configureStore({ reducer: rootReducer });

export default store;

Successivamente dobbiamo wrappare l’intera app con Provider fornito da ‘react-redux’:

import React from 'react';

import { Provider } from 'react-redux';
import store from './store/store';

const App: () => React$Node = () => {
  return (
    <Provider store={store}>
      <YourApp />
    </Provider>
  );
};

export default App;


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *