2016-07-22 11 views
1

Ich bin ein Anfänger in Javascript und Redux, und ich habe gerade meine erste App basierend auf dieser tutorial erstellt. Ich habe ein Problem, dass der Store auf keinen Dispatch-Aufruf reagiert. Ich weiß nicht, ob es einen Fehler in der Verbindung zwischen Redux und React oder in der Store-Konfiguration selbst gibt.Redux - Store funktioniert nicht

Könnten Sie mir bitte bei diesem Problem helfen?

Dies ist Snippes aus meiner Aktion Datei wo "AddTodo" Aktion definiert ist.

export const ADD_TODO = 'ADD_TODO'; 
 

 

 
let todoId = 0; 
 

 
export const addTodo = (text) => ({ 
 
    type: ADD_TODO, 
 
    id: todoId++, 
 
    text, 
 
});

Unten ist mein Speicher-Konfiguration.

import { createStore, applyMiddleware, compose } from 'redux'; 
 
import rootReducer from '../reducers'; 
 
import DevTools from '../containers/DevTools'; 
 

 
const enhancer = compose(
 
    applyMiddleware(createLogger), 
 
    DevTools.instrument() 
 
); 
 

 
export default function configureStore(initialState) { 
 
    const store = createStore(rootReducer, initialState, enhancer); 
 

 
    if (module.hot) { 
 
     module.hot.accept('../reducers',() => { 
 
      const nextRootReducer = require('../reducers').default; 
 
      store.replaceReducer(nextRootReducer); 
 
     }); 
 
    } 
 

 
    return store; 
 
}
Meine Index-Datei, wo ich versuche, mit "AddTodo" Aktion Schöpfer eine Dispatch-Funktion aufzurufen. Ähnlich rufe ich diese Funktion in Redux-Containern auf, aber es funktioniert nicht für beide.

import React from 'react'; 
 
import { render } from 'react-dom'; 
 

 
import configureStore from './store/configureStore'; 
 

 
import { addTodo } from './actions'; 
 

 
const store = configureStore(); 
 

 
store.subscribe(() => 
 
    console.log(store.getState()) 
 
); 
 

 
store.dispatch(addTodo('test'));

Das gesamte Projekt wird auch auf Github gelegt. Ich werde dankbar sein, wenn Sie mir helfen.

+2

sollten Sie versuchen, diese zu einem reproduzierbaren Beispiel reduziert (die Komponente reagieren, zum Beispiel, ist hier nicht relevant) aka eine MVCE –

+0

Ja, du hast absolut recht. Ich habe einige Code-Vereinfachungen gemacht. – jezikk

+0

War es Ihnen gelungen, die App mit dem originalen react/redux-Lernprogrammcode zu arbeiten - bevor Sie Ihre Änderungen vornehmen? – abigwonderful

Antwort

0

vergessen haben createLogger aufzurufen, versuchen

const enhancer = compose(
    applyMiddleware(createLogger()) 
    ... 
); 

webpackbin test

+0

Vielen Dank. – jezikk