javascript - React - 我有六个文件导出一个变量,并希望从一个文件中导出所有变量
问题描述
我有 6 个文件
美食之家.jsx
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`));
驱逐出境.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/deporte/${i}.png`));
转移.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`));
礼品卡.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`));
我想把所有这些都放在一个文件 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);
解决方案
另一种选择是拥有另一个包含这些文件的文件,例如constants.js
,然后在该文件中:
// constants.js
import gastronomia from './gastronomia'
import deporte from './deporte'
import diversion from './diversion'
etc
export { gastronomia, deporte, diversion, etc. }
然后在您的目标模块中,您可以将它们全部导入一行:
import { gastronomia, deporte, diversion, etc. } from './constants.js'
前面需要做更多的工作,但最终你会得到一个文件来管理你的导入和导出,并且在使用这些常量的目标模块中,你只需一行将它们全部导入。这是我的首选方法,它使一切井井有条。
编辑:
您可以将所有常量粘贴在声明它们的文件末尾的单个对象中:
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`));
const todasLasCosas = {
gastronomiaExperience: gastronomiaExperience,
giftcardExperience: giftcardExperience,
deporteExperience: deporteExperience,
productosExperience, // this is the same as saying 'productosExperience: productosExperience'
diversionExperience,
bellezaExperience
}
export default todasLasCosas
然后在您的目标模块中:
import todasLasCosas from './todasLasCosas.js'
请注意此导入语句中缺少花括号。导入默认导出(AKA 未命名导出)时,不需要大括号。然后在您的文件中,您可以访问如下内容:
todaslasCosas.gastronomiaExperience
todaslasCosas.bellezaExperience
推荐阅读
- function - Azure Function: azure function 发布密码 注意需要
- python - 如何将 2 列数组(随机生成)转换为 DataFrame?
- mysql - 从 table2 中找到的 table1 中删除部分列中的值 状态为非活动状态
- testing - ColdFusion 11 到 2018 升级——服务器锁定,如何更好地测试?
- forms - 2019,Chrome 76,关闭自动完成的方法
- ruby - 为什么 google.co.jp 会以 400 Bad Request 响应?
- ios - 关于在 Swift 中重复加载 collectionView 单元格的问题
- postgis - PostGIS 中的 ST_CONTAINS 和 ST_WITHIN 问题
- autohotkey - 从文件中查找数据,并将它们存储为变量
- json - jq - 选择包含特定键的对象