2016-07-22 9 views
1

私はJavascriptとReduxの初心者です。このtutorialに基づいて初めてのアプリを作成しました。私はストアがいかなるディスパッチコールにも絶対に反応しないという問題があります。私は、ReduxとReactの間の接続にエラーがあるか、ストア設定自体にエラーがあるかどうかはわかりません。Redux - Storeが動作しません

この問題をお手伝いしますか?

これは、「addTodo」アクションが定義されているアクションファイルのスニペットです。以下は

export const ADD_TODO = 'ADD_TODO'; 
 

 

 
let todoId = 0; 
 

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

私の店の設定です。私は「AddTodo」アクションの作成者でディスパッチ関数を呼び出そう

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; 
 
}
私のインデックスファイル。同様に、私はReduxコンテナでこの関数を呼び出しますが、両方で機能しません。

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

プロジェクト全体はあまりにもGithubの上に置かれています。あなたが私を助けてくれたら、私は感謝しています。

+2

を試し、createLoggerを起動するのを忘れて(例えば、コンポーネントを反応させ、ここでは関係ありません)MVCE別名 –

+0

ええ、あなたは絶対に正しいです。私はいくつかのコードを簡略化しました。 – jezikk

+0

オリジナルのreact/reduxチュートリアルコードを使用して、アプリケーションをうまく動かせるようになったことがありますか? – abigwonderful

答えて

0

あなたが再現可能な例にこれを削減しようとする必要があり

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

webpackbin test

+0

ありがとうございます。 – jezikk

関連する問題