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())
...
);
我是 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;
}
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())
...
);