gpt4 book ai didi

javascript - Reducer 不导入 Action 类型常量

转载 作者:行者123 更新时间:2023-11-30 19:21:24 25 4
gpt4 key购买 nike

我有一个根 reducer ,它从另一个文件导入 Action 类型常量。当reducer第一次被createstore调用时,这些常量的值是未定义的。

我尝试将这些常量转换为函数,但它给了我错误信息——“对象不能是函数”。当我打印它的类型时,它最初给我未定义但后来调用打印类型函数。

我的目录结构是这样的

helpers/
-index.js
-store.js
-constants.js

reducers/
-index.js
-rootReducer.js

每个 index.js 文件都是类型-

export * from './rootReducer'

这是我的商店文件 (store.js)-

import { createStore, applyMiddleware, compose } from 'redux'
import { rootReducer } from '../reducers'
import ReduxThunk from 'redux-thunk'

const initialState = {}

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
export const store = createStore(
rootReducer,
initialState,
composeEnhancers(applyMiddleware(ReduxThunk))
)

这是我的常量文件(constants.js)-

export const constants = {
BENCHMARK_DATA_RECEIVED: 'BENCHMARK_DATA_RECEIVED',
BENCHMARK_DATA_FAILED: 'BENCHMARK_DATA_FAILED',
}

这是我的根 reducer (rootReducer.js)-

import { constants } from '../helpers'

export const rootReducer = (state = [], action) => {
console.log(constants)
// Initially print undefined
// After that prints correct value

switch (action.type) {
case 'BENCHMARK_DATA_RECEIVED':
return { ...state, benchmark_data: action.payload }
default:
return state
}
}

我不确定是什么导致了这个问题,但它只会在第一次使用 reducer 时发生(很可能是在创建商店时)。我用谷歌搜索了很多,但没有遇到任何此类问题。也许我的设置有问题。也可以在任何地方打印这些常量(比如在 action creators 中)。

最佳答案

总结一下评论中的讨论,您可以直接从 constants.js 导入到您的 reducer 中,同时调查您拥有的文件结构。

关于javascript - Reducer 不导入 Action 类型常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57426723/

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