javascript - React - 我有六个文件导出一个变量,并希望从一个文件导出所有变量

标签 javascript reactjs

我有 6 个文件

gastronomia.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`));

diversion.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`));

贝勒扎.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例如:

 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

然后在你的目标模块中:

从“./todasLasCosas.js”导入todasLasCosas

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

todaslasCosas.gastronomiaExperience
todaslasCosas.bellezaExperience 

关于javascript - React - 我有六个文件导出一个变量,并希望从一个文件导出所有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59761954/

相关文章:

Javascript 命令插入 HTML

reactjs - 在 react 中访问类内的状态

javascript - redux 不会通过 browserHistory.push() 强制使用 mapStateToProps

reactjs - React Router v4 - 如何获取当前路由?

javascript - 将 javascript 数组处理转换为 jQuery

javascript - Thickbox - 是否有 "onready"事件?

javascript - 模拟 DayJs 默认函数及其链式方法

javascript - 如何将字符串/标题中的最后三个单词换行

javascript - 为什么在新的 react-router-dom 中 <Redirect/> 不在 setTimeout 内触发?

jquery - 重新加载时合理的图库中断