2017-01-24 2 views
2

Ich habe ein Projekt, das eine Komponente von einem externen Knotenmodul importieren muss, das Projekt und die Komponente verwenden beide React und Redux und ich möchte, dass beide dasselbe teilen Geschäft.So exportieren Sie einen Reducer von einem Redox-basierten Knotenmodul

ist Heresa Probe des Minderer der Knotenmodul Komponente:

export default function search(state = INITIAL_STATE, action) { 
switch (action.type) { 
    case SET_SEARCH_STRING: 
     return state.set("searchString", action.searchString); 
    case SET_SEARCH_TYPE: 
     return state.set("searchType", action.searchType); 

Hier ist der Export von der Komponente in dem Knotenmodul:

var SearchReducer = require("./WebContent/js/reducers/search"); 
var CollectionsReducer = require("./WebContent/js/reducers/collections"); 

exports.SearchReducer = SearchReducer; 
exports.CollectionsReducer = CollectionsReducer; 

Hier ist der Import in das Hauptprojekt

import content from "./content" 
    import SearchReducer from "search-ui"; 
    import CollectionsReducer from "search-ui"; 

    const REDUCERS = {content, SearchReducer, CollectionsReducer}; 
    export default combineReducers(REDUCERS); 

Wenn ich versuche, die Seite zu laden, erhalte ich einen Type Error

Uncaught Typeerror: Minderer ist keine Funktion - combineReducers.js: 37

Nun, wenn ich einen direkten Weg zu den Knotenmodul Reduzierungen bieten -

dh import collections from "../../../node_modules/search-ui/WebContent/js/reducers/collections";

es funktioniert gut, so Meine Frage ist, was mache ich falsch im Import und Export?

Antwort

2

Da dies kein Standardexport ist, versuchen Sie es.

import {SearchReducer, CollectionsReducer} from 'search-ui' 

Alternativ können Sie den vollständigen Pfad zur Verfügung stellen, aber es gibt keine Notwendigkeit, es im Verhältnis zu machen

import SearchReducer from 'search-ui/WebContent/js/reducers/search' 
import CollectionsReducer from 'search-ui/WebContent/js/reducers/collections 
Verwandte Themen