React Native Academy · Lektion

Konfigurera Redux Store och Provider

Installera @reduxjs/toolkit och react-redux, konfigurera Store med configureStore och omslut appen med en Provider så att Store blir globalt tillgänglig.

Lektion 1 av 413 steg

Konfigurera Redux Store och Provider är en gratis lektion i React Native Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för React Native Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Native Academy innehåller totalt 4 lektioner.

Vad är Redux Toolkit?

Redux Toolkit (RTK) är det officiella och rekommenderade sättet att skriva Redux-logik i dag. Det eliminerar mycket av den standardkod som klassisk Redux kräver genom att tillhandahålla hjälpfunktioner som configureStore, createSlice och createAsyncThunk. RTK innehåller bästa praxis som standard, till exempel Immer för oföränderliga uppdateringar och integrering med Redux DevTools.

Installera de paket som krävs

För att komma igång med Redux Toolkit i React Native behöver du två paket: @reduxjs/toolkit tillhandahåller kärnfunktionerna och react-redux tillhandahåller React-bindningarna. Installera dem med ett enda kommando så är de omedelbart klara att användas.

npm install @reduxjs/toolkit react-redux

Konfigurera store

Store är den enda sanningskällan för hela Redux-applikationens state. Du skapar den med configureStore och skickar in ett reducer-objekt som mappar slice-namn till deras reducer-funktioner. RTK konfigurerar automatiskt Redux DevTools och aktiverar rekommenderad middleware som 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;

Omsluta appen med Provider

Komponenten Provider från react-redux gör Redux store tillgänglig för alla komponenter i ditt React Native-komponentträd. Omslut din rotkomponent (eller NavigationContainer om du använder React Navigation) med <Provider store={store}>. Alla komponenter i trädet kan sedan komma åt store med hjälp av hooks.

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>
  );
}

Förstå Redux dataflöde

Redux framtvingar ett strikt enkelriktat dataflöde: gränssnittet dispatchar en action, reducer bearbetar den actionen för att skapa ett nytt state, store sparar det nya statet och gränssnittet renderas om för att återspegla ändringen. Den här förutsägbara cykeln gör felsökning och testning enkelt, eftersom varje state-ändring kan spåras till en specifik action.

Typade hooks med TypeScript

I TypeScript-projekt är det bästa praxis att skapa typade versioner av useDispatch och useSelector så att du får autokomplettering och typsäkerhet i hela appen. Exportera useAppDispatch och useAppSelector från en hooks-fil och importera dem i dina komponenter i stället för de vanliga hooks-funktionerna.

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);

Reducer-objektet i configureStore

Nyckeln reducer i configureStore tar emot ett objekt där varje nyckel blir ett slice-namn i det globala statet. Om du till exempel skickar in { counter: counterReducer, user: userReducer } får ditt state formen { counter: {...}, user: {...} }. Du kan när som helst lägga till fler slices utan att ändra befintliga slices.

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

Integrering med Redux DevTools

configureStore aktiverar automatiskt webbläsartillägget Redux DevTools i utvecklingsläge. Med DevTools kan du inspektera det aktuella statet, visa varje dispatchad action och till och med gå tillbaka i tiden till en tidigare state-ögonblicksbild. Detta är en av de största fördelarna vid felsökning med Redux jämfört med vanlig useState.

Standardmiddleware i Redux Toolkit

RTK:s configureStore lägger som standard till flera middleware: redux-thunk för asynkrona action creators, middleware för serializability check som varnar när icke-serialiserbara värden (som funktioner eller klassinstanser) läggs i state, samt en immutability check som varnar om state ändras direkt. Du kan anpassa detta med alternativet middleware.

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

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

Organisera store-mappen

En tydlig mappstruktur gör Redux-appar enklare att underhålla. Ett vanligt mönster är en mapp store/ med en index.ts för store-konfigurationen och en undermapp features/ där varje funktion har en egen slice-fil. Till exempel: store/features/counter/counterSlice.ts. Håll slice-filer små och fokuserade på ett enda domänbegrepp.

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

Kontrollera att store är ansluten

En snabb rimlighetskontroll efter att du har kopplat in Provider är att logga store.getState() i store-filen. Detta skriver ut det initiala statet i konsolen och bekräftar att reducer-kartan är korrekt strukturerad. När du ser den förväntade formen — till exempel { counter: { value: 0 } } — vet du att store är redo för komponenter att läsa från och skriva till.

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

Snabb kontroll

Testa dina kunskaper om React Native Mobile Development från den här lektionen.

Lektionssammanfattning

I den här lektionen har du lärt dig att Redux Toolkit minskar mängden standardkod med configureStore och inbyggd middleware, att komponenten Provider gör store tillgänglig för hela komponentträdet och att typade hooks (useAppDispatch, useAppSelector) ger TypeScript-säkerhet i din Redux-kod. Härnäst utforskar vi hur du skapar slices med createSlice.

Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Konfigurera Redux Store och Provider” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen React Native Academy, inklusive ”Konfigurera Redux Store och Provider”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i React Native Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Konfigurera Redux Store och Provider”?

Installera @reduxjs/toolkit och react-redux, konfigurera Store med configureStore och omslut appen med en Provider så att Store blir globalt tillgänglig. Ni övar på React Native Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig React Native Academy?

Du behöver inga förkunskaper. Utbildningen i React Native Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Konfigurera Redux Store och Provider”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här React Native Academy-lektionen?

Ja. Varje React Native Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Konfigurera Redux Store och Provider
  2. Skapa slices med createSlice
  3. Läsa tillstånd med useSelector
  4. Asynkrona thunks med createAsyncThunk
← Tillbaka till React Native Academy