Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 React-我有六个导出变量的文件,希望所有变量都从一个文件导出_Javascript_Reactjs - Fatal编程技术网

Javascript React-我有六个导出变量的文件,希望所有变量都从一个文件导出

Javascript React-我有六个导出变量的文件,希望所有变量都从一个文件导出,javascript,reactjs,Javascript,Reactjs,我有6个文件 天麻 import _range from 'lodash/range'; // eslint-disable-next-line global-require, import/no-dynamic-require export default _range(1, 5).map(i => require(`assets/experiences/gastronomia/${i}.png`)); 驱逐出境 import _range from 'lodash/range'; /

我有6个文件

天麻

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 5).map(i => require(`assets/experiences/gastronomia/${i}.png`));
驱逐出境

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 3).map(i => require(`assets/experiences/deporte/${i}.png`));
jsx.jsx

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 4).map(i => require(`assets/experiences/diversion/${i}.png`));
giftcard.jsx

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 12).map(i => require(`assets/experiences/giftcard/${i}.png`));
belleza.jsx

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 3).map(i => require(`assets/experiences/belleza/${i}.png`));
productos.jsx

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require
export default _range(1, 2).map(i => require(`assets/experiences/productos/${i}.png`));
我想把所有这些都放在一个file providers.jsx中,每个都作为常量,例如:

 const gastronomiaExperience = _range(1, 2).map(i => require(`assets/experiences/productos/${i}.png`));
 const deporteExperience = _range(1, 3).map(i => require(`assets/experiences/deporte/${i}.png`));
然后导出这6个常量,这样我就可以在另一个文件中将它们用作数组了

我试过这样做,但不知道是否正确

import _range from 'lodash/range';
// eslint-disable-next-line global-require, import/no-dynamic-require

const gastronomiaExperience =  _range(1, 5).map(i => require(`assets/experiences/gastronomia/${i}.png`));

const giftcardExperience = _range(1, 12).map(i => require(`assets/experiences/giftcard/${i}.png`));

const deporteExperience =  _range(1, 3).map(i => require(`assets/experiences/deporte/${i}.png`));

const productosExperience = _range(1, 2).map(i => require(`assets/experiences/productos/${i}.png`));

const diversionExperience = _range(1, 4).map(i => require(`assets/experiences/diversion/${i}.png`));

const bellezaExperience = _range(1, 3).map(i => require(`assets/experiences/belleza/${i}.png`)); 

export default (gastronomiaExperience, giftcardExperience, deporteExperience, productosExperience, diversionExperience, bellezaExperience);

要导出许多函数,文件中的对象使用名为export的

在您的场景中,导出provider.jsx中的函数

出口{gastronomiaExperience,experience}


使用名称导出,有关更详细的说明,请查看

另一个选项是使用这些文件创建另一个文件,例如
constants.js
,然后在该文件中:

//constants.js
从“/gastronomia”导入gastronomia
从“./递解出境”导入递解出境
从“./转移”导入转移
等
出口{美食、驱逐、转移等}
然后,在目标模块中,您可以在一行中导入它们:

从“/constants.js”导入{gastronomia、驱逐、转移等}
前面的工作稍微多一些,但最终只有一个文件管理导入和导出,在使用这些常量的目标模块中,只有一行将它们全部导入。这是我喜欢的方法,它让一切都井然有序

编辑

您可以将所有常量粘贴在一个对象的文件末尾,声明它们:

import_范围从'lodash/range'开始;
//eslint禁用下一行全局要求,导入/无动态要求
const gastronomiaExperience=_range(1,5).map(i=>require(`assets/experiences/gastronomia/${i}.png`));
const giftcardExperience=_range(1,12).map(i=>require(`assets/experiences/giftcard/${i}.png`));
const-reporteeexperience=_range(1,3).map(i=>require(`assets/experiences/reporte/${i}.png`));
const productosExperience=_range(1,2).map(i=>require(`assets/experiences/productos/${i}.png`));
const diversionExperience=_range(1,4).map(i=>require(`assets/experiences/diversion/${i}.png`));
const bellezaExperience=_range(1,3).map(i=>require(`assets/experiences/belleza/${i}.png`));
常数todasLasCosas={
美食体验:美食体验,
giftcardExperience:giftcardExperience,
驱逐体验:驱逐体验,
productosExperience,//这与说“productosExperience:productosExperience”相同
多样化的体验,
贝勒扎经验
}
将默认值导出到ASCOSAS
然后在目标模块中:

从“/todasLasCosas.js”导入todasLasCosas

注意这个import语句中缺少大括号。导入默认导出(也称为未命名导出)时,不需要大括号。然后,您可以在文件中访问以下内容:

todaslasCosas.gastronomiaExperience
todaslasCosas.BellezaeExperience

providers.jsx
中导出默认值[gastronomiaExperience,ParadeExperience,…]
?我想减少我的文件,因此我想将所有这些文件减少为一个无法工作的文件。默认情况下,不能导出多个命名常量。一个文件只能导出一个默认内容。因此,在上面的编辑中,您需要进行
导出{gastronomiaExperience,giftcardeexperience,laqueeeexperience…}
。然后在您的目标模块中,您将执行
导入{gastronomiaExperience,giftcardeexperience,releaseeexperience…}
另一种常见的方法是获取所有要导入的常量,并将它们粘贴到对象中。我将编辑我的答案以显示这一点。不,您不能,一个文件只能有一个默认导出,您试图做的是将所有函数导出为默认导出,这是不可能的。