javascript - 我有六个 react 文件,每个文件导出一个数组,我想将六个文件减少到一个

标签 javascript reactjs

我有 6 个如下所示的文件,我想将这六个文件减少为一个名为“providers”的文件,然后我可以将每个数组导入到其他文件中。

这是我的六个文件

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中,例如如下所示:

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};

我不知道我做错了什么,但是当我尝试映射另一个组件中的数组时,它给了我一个错误

类型错误:popoverCategory.map 不是函数

当我将每个文件都放在自己的文件中时,效果很好

我的文件结构是

源代码

 assets
  clientes
    clientes images
  experiences
     experiences 6 images 
     file belleza
      1.png
      2.png
     file deporte
      1.png
      2.png
     file gastronomia
        ]1.png
        2.png
        3.png
        4.png
      rest of experience files with images

components
  Experiences.jsx
  Other components are in here
data
  clientes.jsx
  providers.jsx
  this is where I use to have all the data files(gastronomia.jsx deporte.jsx ect)
pages
  Home.jsx
root
  App.jsx
  Providers.jsx
  strore.jsx
  theme.jsx
utils
  ga.jsx
  enviroment.jsx

最佳答案

您需要像这样导出它们:

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

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

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

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

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

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

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

然后像这样导入它:

import { bellezaExperience } from '../Your_File_Path';

希望这对您有用。

关于javascript - 我有六个 react 文件,每个文件导出一个数组,我想将六个文件减少到一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769977/

相关文章:

javascript - 使用 JQuery OnClick 创建多个 HTML 元素

javascript - 表格输出 "values"不正确?

reactjs - 使用 enzyme.mount 测试 React HoC 似乎无法正确输出子组件

reactjs - react : OnChange for drop down return me the entire <select></select> tag

reactjs - ReactJS 中的函数组件和返回语句

javascript - Html5shiv 不工作

javascript - 单击子项时触发父项单击事件

javascript - TypeError : $(. ..).on 不是prototype.js 的函数

javascript - 如何以编程方式关闭 Material-Ui DropDownMenu

javascript - 在 React 渲染中循环动态服务器响应