Redux - 商店不工作

Redux - Store doesn't work

我是 Javascript 和 Redux 的新手,我刚刚基于此 tutorial 创建了我的第一个应用程序。我有一个问题,商店绝对不会对任何调度电话做出反应。不知道是Redux和React的连接有问题,还是store配置本身有问题

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

这是我的动作文件的片段,其中定义了 "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上。如果你能帮助我,我将不胜感激。

您忘记调用 createLogger,试试

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

webpackbin test