我正在尝试使用上下文(由react-redux
提供的提供者)将Redux存储传递给我的组件。我这样做:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route } from 'react-router-dom';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import eventsReducer from './GlobalReducer'; // <= IMPORTING
import './index.css';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(
<Provider store={createStore(eventsReducer)}>
<BrowserRouter>
<div>
<Route component={GlobalHeader} />
<Route component={GlobalFooter} />
</div>
</BrowserRouter>
</Provider>,
document.getElementById('root')
);
registerServiceWorker();
我的reducer函数是这样声明的:
GlobalReducer.js
import EventActions from './actions/EventActions';
class GlobalReducer {
eventsReducer = function(state = {},action) {
switch(action.type) {
case "LOAD_INITIAL_STATE":
return {...state, events: EventActions.load()};
default:
return state;
}
}
};
module.exports = GlobalReducer.eventsReducer;
碰巧我得到一个错误:
./src/index.js
23:22-35“在'./GlobalReducer'中找不到导出'默认'(作为'eventsReducer'导入)
我什至在这里尝试了箭头语法,但没有帮助。
我尝试通过多种方式编写它:
1)使用
import GlobalReducer from './GlobalReducer';
然后写
<Provider store={createStore(GlobalReducer.eventsReducer)}>
然后错误更改为
错误:期望减速器具有某种功能。
2)用导出功能
module.exports = GlobalReducer.eventReducer;
像导入
import eventsReducer from './GlobalReducer';
然后将其用作
<Provider store={createStore(eventsReducer)}>
然后错误更改为
./src/index.js
23:22-35“在'./GlobalReducer'中找不到导出'默认'(导入为'GlobalReducer')
我什至试图将函数从类中取出并直接使用
module.exports
导出。它也不起作用!我到底在做什么错?正确的方法是什么?
最佳答案
将行module.exports = GlobalReducer.eventsReducer;
更改为export default GlobalReducer.eventsReducer;
然后,使用以下命令导入它:import eventsReducer from './GlobalReducer';
。
您将不再使用GlobalReducer.eventsReducer
,而仅使用eventsReducer
。
关于javascript - react :导入 reducer 功能时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47154836/