React Native Academy · Leçon

Configurer le magasin Redux et le Provider

Installez @reduxjs/toolkit et react-redux, configurez le magasin avec configureStore et enveloppez l’application dans un Provider pour rendre le magasin disponible globalement.

Leçon 1 sur 413 étapes

Configurer le magasin Redux et le Provider est une leçon React Native Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Native Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Native Academy comprend 4 leçons au total.

Qu’est-ce que Redux Toolkit ?

Redux Toolkit (RTK) est aujourd’hui la méthode officielle et recommandée pour écrire la logique Redux. Il élimine le code répétitif de Redux classique en fournissant des fonctions utilitaires comme configureStore, createSlice et createAsyncThunk. RTK applique par défaut les bonnes pratiques, notamment l’utilisation d’Immer pour les mises à jour immuables et l’intégration de Redux DevTools.

Installer les paquets requis

Pour commencer à utiliser Redux Toolkit avec React Native, vous avez besoin de deux paquets : @reduxjs/toolkit fournit les utilitaires principaux et react-redux fournit les liaisons avec React. Installez-les avec une seule commande ; ils seront immédiatement prêts à l’emploi.

npm install @reduxjs/toolkit react-redux

Configurer le store

Le store est la source unique de vérité pour l’état de toute votre application Redux. Créez-le avec configureStore en transmettant un objet reducer qui associe les noms des slices à leurs fonctions de réduction. RTK configure automatiquement Redux DevTools et applique les intergiciels recommandés, comme redux-thunk.

import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './features/counter/counterSlice';

export const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

Entourer l’application avec Provider

Le composant fournisseur de react-redux rend le magasin Redux disponible pour chaque composant de votre arborescence de composants React Native. Entourez votre composant racine (ou NavigationContainer si vous utilisez React Navigation) avec <Provider store={store}>. Tout composant situé dans l’arborescence peut ensuite accéder au magasin à l’aide de crochets.

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

export default function App() {
  return (
    <Provider store={store}>
      <AppNavigator />
    </Provider>
  );
}

Comprendre le flux de données Redux

Redux impose un flux de données unidirectionnel strict : l’interface utilisateur distribue une action, le réducteur traite cette action pour produire un nouvel état, le magasin enregistre ce nouvel état, puis l’interface utilisateur est réaffichée pour refléter la modification. Ce cycle prévisible facilite le débogage et les tests, car chaque changement d’état peut être attribué à une action précise.

Crochets typés avec TypeScript

Dans les projets TypeScript, il est recommandé de créer des versions typées de useDispatch et useSelector afin de bénéficier de la complétion automatique et de la sécurité de typage dans toute l’application. Exportez useAppDispatch et useAppSelector depuis un fichier de crochets, puis importez-les dans vos composants à la place des crochets bruts.

import { useDispatch, useSelector } from 'react-redux';
import type { RootState, AppDispatch } from './store';

export const useAppDispatch = () => useDispatch<AppDispatch>();
export const useAppSelector = <T>(selector: (state: RootState) => T): T =>
  useSelector(selector);

L’objet des réducteurs dans configureStore

La clé reducer à l’intérieur de configureStore accepte un objet dont chaque clé devient un nom de tranche dans l’état global. Par exemple, transmettre { counter: counterReducer, user: userReducer } signifie que la structure de votre état est { counter: {...}, user: {...} }. Vous pouvez ajouter d’autres tranches à tout moment sans modifier celles qui existent déjà.

export const store = configureStore({
  reducer: {
    counter: counterReducer,
    user: userReducer,
    products: productsReducer,
  },
});

Intégration de Redux DevTools

configureStore active automatiquement l’extension de navigateur Redux DevTools en mode développement. Avec DevTools, vous pouvez inspecter l’état actuel, consulter chaque action distribuée et même revenir dans le temps à un instantané d’état précédent. Il s’agit de l’un des principaux avantages de Redux pour le débogage par rapport à un simple useState.

Intergiciel par défaut dans Redux Toolkit

Le configureStore de RTK ajoute plusieurs intergiciels par défaut : redux-thunk pour les créateurs d’actions asynchrones, un intergiciel de serializability check qui avertit lorsque des valeurs non sérialisables (comme des fonctions ou des instances de classe) sont placées dans l’état, ainsi qu’une immutability check qui avertit si l’état est modifié directement. Vous pouvez personnaliser cela avec l’option middleware.

import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';

export const store = configureStore({
  reducer: { counter: counterReducer },
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: false,
    }),
});

Organiser le dossier du magasin

Une structure de dossiers claire facilite la maintenance des applications Redux. Une organisation courante consiste à utiliser un dossier store/ contenant un fichier index.ts pour la configuration du magasin et un sous-dossier features/ où chaque fonctionnalité possède son propre fichier de tranche. Par exemple : store/features/counter/counterSlice.ts. Gardez les fichiers de tranche courts et centrés sur un seul concept métier.

src/
  store/
    index.ts          // configureStore + exports
    hooks.ts          // useAppDispatch, useAppSelector
    features/
      counter/
        counterSlice.ts
      user/
        userSlice.ts

Vérifier que le magasin est connecté

Après avoir configuré le Provider, une vérification rapide consiste à consigner store.getState() dans le fichier du magasin. Cela affiche l’état initial dans la console et confirme que la carte des réducteurs est correctement structurée. Lorsque vous voyez la structure attendue — par exemple { counter: { value: 0 } } — vous savez que le magasin est prêt à être lu et modifié par les composants.

import { store } from './store';
console.log('Initial state:', store.getState());
// Output: { counter: { value: 0 }, user: { name: null } }

Vérification rapide

Vérifiez votre compréhension des concepts du développement d’applications mobiles React Native abordés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que Redux Toolkit réduit le code répétitif grâce à configureStore et aux intergiciels intégrés, que le composant Provider rend le magasin accessible à toute l’arborescence des composants et que les crochets typés (useAppDispatch, useAppSelector) ajoutent la sécurité de TypeScript à votre code Redux. Nous allons maintenant découvrir la création de tranches avec createSlice.

Gratuit pour commencer

Apprends JavaScript avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Configurer le magasin Redux et le Provider » est-elle gratuite ?

Oui — le texte complet de « Configurer le magasin Redux et le Provider » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Native Academy, passe à CoddyKit PRO. Le cours React Native Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Configurer le magasin Redux et le Provider » ?

Installez @reduxjs/toolkit et react-redux, configurez le magasin avec configureStore et enveloppez l’application dans un Provider pour rendre le magasin disponible globalement. Tu pratiques React Native Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Native Academy ?

Aucune expérience préalable n'est requise. React Native Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Configurer le magasin Redux et le Provider » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Native Academy ?

Oui. Chaque leçon React Native Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configurer le magasin Redux et le Provider
  2. Créer des tranches avec createSlice
  3. Lire l’état avec useSelector
  4. Thunks asynchrones avec createAsyncThunk
← Retour à React Native Academy