2017-02-20 1 views
1

je veux demander comment exporter plusieurs const dans 1 Réducteurs de fichiers dans Reduxd'exportation des variables multiples dans un seul fichier réducteur REDUX

myreducers.js

import * as ActionTypes from '../actions/secone' 

// PRODUCT TEMPLATE STATE 
const productTemplate = (state={records:[], isFetching: false}, action) => { 
switch (action.type) { 
    case ActionTypes.PRODUCT_TEMPLATE_REQUEST: 
     return { ...state, isFetching: true} 
    case ActionTypes.PRODUCT_TEMPLATE_SUCCESS: 
     return { 
      records: action.response, 
      isFetching: false, 
     } 
    default: 
     return state; 
} 
} 

// PRODUCT ATTRIBUTE VALUES STATE 
const productAttributeValues = (state={records:[], isFetching: false}, action) => { 
switch (action.type) { 
    case ActionTypes.PRODUCT_ATTRIBUTE_VALUES_REQUEST: 
     return { ...state, isFetching: true} 
    case ActionTypes.PRODUCT_ATTRIBUTE_VALUES_SUCCESS: 
     return { 
      records: action.response, 
      isFetching: false, 
     } 
    default: 
     return state; 
} 
} 

export default (productTemplate, productAttributeValues) 

alors comment importer ces réducteurs dans le réducteur principal qui combiner tous les fichiers, ce que je n'est en ce moment à diviser jamais const de mes réducteurs dans 1 fichier, et ce n'est pas efficace,

mainreducer.js

import { combineReducers } from 'redux' 
import * as ActionTypes from '../actions/auth' 
import authentication from './auth' 
import productBrand from './secone' 
import productTemplate from './product' 
import resCity from './resCity' 
import { routerReducer } from 'react-router-redux' 

// Updates error message to notify about the failed fetches. 
const errorMessage = (state = null, action) => { 
const { type, error } = action 

if (type === ActionTypes.RESET_ERROR_MESSAGE) { 
    return null 
} else if (error) { 
    return action.error 
} 
    return state 
} 

const rootReducer = combineReducers({ 
    authentication, 
    errorMessage, 
    productTemplate, 
    // productAttributeValues, 
    productBrand, 
    resCity, 
    routing: routerReducer 
}) 

export default rootReducer 

Répondre

5

Je ne sais pas ce que vous voulez achive, mais si votre problème est d'exporter plus de valeurs d'un fichier et les importer dans un autre fichier, la réponse est de ne pas utiliser export default, mais les exportations classiques:

myreducers .js

export const productTemplate = (state={records:[], isFetching: false}, action) => { ... } 
export const productAttributeValues = (state={records:[], isFetching: false}, action) => { ... } 

puis les importer

mainreducer.js

import { productTemplate, productAttributeValues } from "./myreducers" //fix the path 

La différence entre export et export default est très bien décrite ici: Typescript export vs. default export (peu importe que la question concerne TypeScript).

+0

@kazuyahiko si la réponse est correcte, s'il vous plaît envisager de le marquer comme accepté –