2017-10-19 1 views
0

Dit que j'ai une liste de tâches, après qu'un todo soit créé, je veux enregistrer l'élément dans localstorage. A quoi ressemblerait le réducteur? Dois-je faire la méthode setItem dans le réducteur ou dans la vue?état redux pour une action mineure

case 'PUBLISH_TODO_PENDING': 
      return { ...state, loading: true, todo_published: false, //do I do this? } 
     case 'PUBLISH_TODO_FULFILLED': 

      return { 
       ...state, 
       loading: false, 
       todo_published: true, //do I do this? 
       data: { 
        result: { 
         todo: state.data.todo, 
        } 
       } 
      } 

Si je veux utiliser setItem en vue la que je dois faire un drapeau indiquant la stat du wether todo est publié ou non. C'est bête de devoir mettre le drapeau dans son état initial aussi.

Répondre

4

Vous devez utiliser redux-thunk. Pour l'utiliser dans votre application de réaction, utilisez l'extrait de code suivant dans votre boutique.

const configureStore = (initialState) => (
    createStore(
    reducer, 
    initialState, 
    composeEnhancers(
     applyMiddleware(thunk) 
    ) 
) 

De plus, il est une meilleure pratique d'écrire le code impliquant et obtenir de la mise en stockage local dans un dossier séparé, dire « utils » et importer le même dans votre page d'action dans l'action.

+0

Je ne vois pas de code localstorage ci-dessus, où doit-on placer localstorage util? dans le paramStore de createStore? –

+0

L'extrait de code ci-dessus permet d'activer les redux-thunks dans vos actions. Vous pouvez créer le dossier 'utils' dans le dossier 'src' (en supposant que vous ayez utilisé create-react-app). A l'intérieur du dossier utils vous pouvez créer un fichier contenant toutes les fonctionnalités impliquant le stockage local. –

+0

ce qui est thunk ici (le param passé à appliquerMiddleware. –

0

Sauvegarder sur localstorage est un effet secondaire, ce qui est très agréable à gérer en utilisant redux-saga afin que vous écoutiez pour une action particulière et que vous fassiez comme vos écouteurs d'événements.