Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 命名导入抛出错误,而来自的导入*不';T_Javascript_Reactjs_Import_Jestjs - Fatal编程技术网

Javascript 命名导入抛出错误,而来自的导入*不';T

Javascript 命名导入抛出错误,而来自的导入*不';T,javascript,reactjs,import,jestjs,Javascript,Reactjs,Import,Jestjs,考虑my react应用程序中功能的以下文件夹结构: feature1 actions actionTypes.js crud.js component.js container.js reducer.js sagas.js sagas.test.js services.js index.js feature2 actions actionTypes.js

考虑my react应用程序中功能的以下文件夹结构:

feature1
    actions
        actionTypes.js
        crud.js
    component.js
    container.js
    reducer.js
    sagas.js
    sagas.test.js
    services.js
    index.js


feature2
    actions
        actionTypes.js
        crud.js
    component.js
    container.js
    reducer.js
    sagas.js
    sagas.test.js
    services.js
    index.js
index.js
文件中,我导入了每个特性的组件、容器、减速器等,并从索引文件中导出了它们

示例:
feature1/index.js

import myReducer from './reducer';
import * as mySagas from './sagas';
import * as myServices from './services';
import * as myCRUD from './actions/crud';
import Component from './component';
import Container from './container';
import * as actionTypes from './actions/actionTypes';

export {
  myReducer,
  actionTypes,
  myCRUD,
  mySagas,
  myServices,
  Component,
  Container,
};
现在在
feature2
sagas.test.js
文件中,我可以如下导入feature1的服务:

从“../feature1”导入{myServices}

上面的行导致失败:
TypeError:window.locale\u name在运行Jest测试时不是函数
window.locale\u name
是在第三方库中定义的函数,它在
feature1
中导入。但另一方面,如果我以以下方式导入相同的内容,则不会抛出错误


import*作为myServices从“../feature1/services”导入

在我看来,导入的
myServices
取决于设置的
窗口。locale\u name
。导入
*
有效的原因可能是因为在
feature1/index.js
的导出值中,在
myServices
之前导出的其中一个值设置了您的
myServices
将使用的
窗口。locale\u name


我相信在ES6模块中,只有导入的导出代码才能运行树震动。

功能1
是否有命名导出?还是默认导出?谢谢你的回答,但不幸的是,答案不是这样。我尝试将
myServices
作为index.js文件中的最后一项导出,但没有效果。@cbalawat将myServices放在导出中的何处并不重要;如果使用分解结构导入,将不会加载其依赖项,脚本将失败。尝试将myServices作为文件中的第一项导出,并使用“*as”导入,您会看到它失败,原因与未加载其依赖项相同。