Redux - 商店不起作用

时间:2016-07-22 16:59:30

标签: javascript reactjs redux react-redux

我是Javascript和Redux的新手,我刚刚根据此tutorial创建了我的第一个应用。我有一个问题,商店绝对不会对任何调度电话做出反应。我不知道Redux和React之间或商店配置本身之间的连接是否有错误。

你能帮我解决这个问题吗?

这是我的动作文件中的片段,其中" addTodo"行动已定义。



export const ADD_TODO = 'ADD_TODO';


let todoId = 0;

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




以下是我的商店配置。



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



 我的索引文件,我尝试使用" AddTodo"调用调度函数。行动创造者。同样,我在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上。如果你帮助我,我将感激不尽。

1 个答案:

答案 0 :(得分:0)

你忘了调用createLogger,试试

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

<强> webpackbin test