微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

文件树缩减器中的状态未定义

如何解决文件树缩减器中的状态未定义

我只想从我的减速器返回一组对象,但 useSelect() 返回未定义

reducer/directories/index.js:

export * from './reportDir'

reducer/directories/reportDir.js:

const reportDir = [
{
    type: 'cat',name: 'گزارش ها',childrens: [
        {
            type: 'folder',name: 'گزارش های اپراتور',childrens: [
                {type: 'file',name: 'گزارش شنود',route: '/listen',id: 1}
            ]
        },{
            type: 'folder',name: 'گزارش مالی',name: 'مالی',id: 2}
            ]
        }
    ]
}
 ]

 const reportDirReducer = (state = reportDir) => {
  return state
 }

 export default reportDirReducer

reducer/index.js:

import { combineReducers } from 'redux'
import newTabReducer from './newTabReducer' 
import fileReducer from './fileReducer'
import tableReducer from './tableReducer'
import { authentication } from './authenticationReducer';
import { alert } from './alertReducer';
import { listen } from './reportOpReducer';
import { reportDirReducer } from './directories';

export default combineReducers({
 newTabReducer,fileReducer,authentication,tableReducer,alert,listen,reportDirReducer
})

这是我为 React 应用程序创建的简单目录路径,但我不知道为什么我从 undefined 获取 reportDirReducer

解决方法

您的 reducer/index.js 文件正在 reportDirReducer 中寻找名为 './directories' 的命名导出。此变量不存在,因为 reducer 是默认导出,而不是命名导出。使用 export * 时它基本上会“丢失”。


在您的 reducer/directories/index.js 中,改用它:

export { default as reportDirReducer } from './reportDir';

我们从作为减速器的 './reportDir' 导入默认导出。然后我们将其重新导出为命名导出 reportDirReducer


另一种解决方案是保持 reducer/directories/index.js 文件与现在相同,并将 reducer/directories/reportDir.js 更改为使用命名导出而不是默认导出。

export const reportDirReducer = (state = reportDir) => {
  return state;
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。