reactjs - Redux createStore/applyMiddleWare Q
问题描述
我是 Redux 的新手,并遵循了在 react 中实现 redux 的教程。我遇到的问题似乎是 app.js 从 store.js 的 createStore 函数收到的任何价值。有任何想法吗?
应用程序.js
import React, { Component } from 'react';
import AppNavbar from './components/AppNavbar';
import ShoppingList from './components/ShoppingList';
import ItemModal from './components/ItemModal';
import { Container } from 'reactstrap';
import { Provider } from 'react-redux';
import store from './store';
import 'bootstrap/dist/css/bootstrap.min.css';
import './App.css';
class App extends Component {
render() {
return (
<Provider store={store}>
<div className="App">
<AppNavbar />
<Container>
<ItemModal />
<ShoppingList />
</Container>
</div>
</Provider>
);
}
}
export default App;
store.js
import { createStore, applyMiddleware, compose } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';
const initialState = {};
const middleware = [thunk];
const store = createStore(
rootReducer,
initialState,
compose(
applyMiddleware(thunk)
)
);
导出默认存储;
reducers 文件夹 itemReducer.js - 仅显示 GET_ITEMS 案例
import {
GET_ITEMS,
ADD_ITEM,
DELETE_ITEM,
ITEMS_LOADING
} from '../actions/types';
const initialState = {
items: [],
loading: false
};
export default function(state = initialState, action) {
switch (action.type) {
case GET_ITEMS:
return {
...state,
items: action.payload,
loading: false
};
index.js
import { combineReducers } from 'redux';
import itemReducer from './itemReducer';
export default combineReducers({
item: itemReducer
});
错误:
TypeError:无法读取未定义(匿名函数)的属性“应用”C://client/node_modules/redux/es/redux.js:523
return funcs.reduce(function (a, b) {
return function () {
return a(b.apply(undefined, arguments));
};
});
}
createStore C://client/node_modules/redux/es/redux.js:87
throw new Error('Expected the enhancer to be a function.');
}
return enhancer(createStore)(reducer, preloadedState);
}
if (typeof reducer !== 'function') {
./src/store.js C://client/src/store.js:9
const middleware = [thunk];
const store = createStore(
rootReducer,
initialState,
compose(
解决方案
该错误与Redux DevTools Chrome 扩展集成有关,它使您能够在浏览器中直观地查看 Redux 商店。安装Redux DevTools扩展应该可以解决问题。如果您不想使用扩展,您可以简单地省略以下代码来删除与扩展的集成:
,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
推荐阅读
- javascript - d3js 强制布局:节点和链接位置的空值
- c# - 如何在 Linq 查询中获取“命名”元组组件?
- angular - 路径未按预期在 tsconfig.json 中工作
- java - Android gradle 版本没有更新
- sql - 转换 json 字段的输入
- python-3.x - Python3 子进程和 if elif else 条件
- javascript - 弹出关闭图标点击事件自定义
- django - 如何使用一个应用程序中的 Django 模型连接到第二个应用程序的数据库副本?
- app-store - 上传我的应用程序时出错:App Sore Connect 操作错误
- android - 不同设备的布局 - 约束布局和最小宽度限定符