gpt4 book ai didi

reactjs - 在一个 reducer 文件中导出多个变量 REDUX

转载 作者:行者123 更新时间:2023-12-02 17:21:29 25 4
gpt4 key购买 nike

我想问一下如何在 redux 中导出多个 const in 1 file reducers

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)

然后如何在合并所有文件的主 reducer 中导入 reducer ,我现在所做的是将 reducer 的 const 拆分到 1 个文件中,这效率不高,

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

最佳答案

我不确定你想达到什么目的,但如果你的问题是从一个文件中导出更多值并将它们导入到另一个文件中,答案不是使用 export default,而是经典的导出:

myreducers.js

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

然后导入它们

mainreducer.js

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

exportexport default 之间的区别在这里有很好的描述:Typescript export vs. default export (无关紧要的问题是关于 TypeScript 的)。

关于reactjs - 在一个 reducer 文件中导出多个变量 REDUX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42339052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com