我正在尝试使用上下文(由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/

10-10 23:33