Haste 模块映射中不存在模块`EmployeeFormReducer`

Posted

技术标签:

【中文标题】Haste 模块映射中不存在模块`EmployeeFormReducer`【英文标题】:Module `EmployeeFormReducer` does not exist in the Haste module map 【发布时间】:2018-12-03 06:08:04 【问题描述】:

我正在开发我的 React Native 应用程序并在收到此错误时重新加载了模拟器:

模块EmployeeFormReducer在急速模块地图中不存在

EmployeeFormReducer 是我已经拥有的减速器,我在模拟器中测试之前添加了EMPLOYEE_UPDATE 案例:

import  EMPLOYEE_UPDATE  from '../actions/types';

const INITIAL_STATE = 
  name: '',
  phone: '',
  shift: ''
;

export default (state = INITIAL_STATE, action) => 
  switch (action.type) 
    case EMPLOYEE_UPDATE:
      return  ...state, [action.payload.prop]: action.payload.value ;
    default:
      return state;
  
;

我没有忘记将它添加到我的 combineReducers:

import  combineReducers  from 'redux';
import AuthReducer from './AuthReducer';
import EmployeeFormReducer from 'EmployeeFormReducer';

export default combineReducers(
  auth: AuthReducer,
  employeeForm: EmployeeFormReducer
);

我认为这是基于 facebooks github 上记录的 React Native 问题:

这可能与 https://github.com/facebook/react-native/issues/4968解决试试 以下: 1.清除守望者手表:watchman watch-del-all。 2、删除node_modules文件夹:rm -rf node_modules && npm install。 3. 重置 Metro Bundler 缓存:rm -rf /tmp/metro-bundler-cache-*npm start -- --reset-cache。 4.删除急速缓存:`rm -rf /tmp/haste-map-react-native-packager-*

但我运行了所有这些命令,但仍然收到错误消息。

【问题讨论】:

【参考方案1】:

在您的导入中,您应该指定要导入的文件的路径,查看您如何导入“AuthReducer”,因此您对“EmployeeFormReducer”的导入应该是:

 import EmployeeFormReducer from './EmployeeFormReducer';

或文件的任何完整路径。

【讨论】:

这就是我答应自己不加班的原因。谢谢。

以上是关于Haste 模块映射中不存在模块`EmployeeFormReducer`的主要内容,如果未能解决你的问题,请参考以下文章

node.js 中的 Haste 模块映射是啥?

错误:jest-haste-map:Haste 模块命名冲突:

jest-haste-map: Haste 模块命名冲突 (AWS, RN)

jest-haste-map:加速模块命名冲突

如何修复 React Native 错误“jest-haste-map:Haste 模块命名冲突”?

Haste 模块命名冲突:将本机应用程序与 AWS 服务反应(放大项目)