Как создать динамическое c константное имя для массива, используя раскрывающиеся опции в reactjs или далее js? - PullRequest
0 голосов
/ 18 февраля 2020

Можно ли создать динамическое c const имя массива с помощью раскрывающихся опций?

Import {array1, array2, array3} from './myfilesystem/arrays';

const somename = array1;



Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Вам необходимо:

  1. Поместить массивы в объект с ключом.

  2. Положить ключи в раскрывающемся списке.

  3. Поместите выбранный ключ в переменную.

  4. Используйте значение этой переменной для поиска массива в объекте .

Примерно так:

const arrays = {
  array1: [...],
  array2: [...],
  array3: [...]
}

const optionsForDropdown = Object.keys(arrays) // ["array1", "array2",...]

function returnSelectedArray(selectedKey) {
  return arrays[selectedKey]
}

Так что, если вы позвоните returnSelectedArray("array1") или сделаете:

const key = "array1"
returnSelectedArray(key)

, вы получите arrays.array1 назад.

0 голосов
/ 18 февраля 2020
import * as arr from '..pathname'

//  ..and somewhere in your code..
const someArray = arr.array1

это что такое?

импорт / экспорт :

экспорт из файла, имеет много вариантов синтаксиса

// explicit exports
export const PI = 3.14159
export const cylinderVolume = (r, h) => {....}

//export as an object..
const PI = 3.14159
const cylinderVolume = (r, h) => {....}

export { PI, cylinderVolume }

// default export
export default PI = 3.14159
export const cylinderVolume = (r, h) => {....}

imports

// importing explict exports
import { PI, cylinderVolume } from 'path'

//importing default and explict exports(PI is default and cylinderVolume is explict)
import PI, { cylinderVolume } from 'path'

// importing as whole..

import * as shape from 'path'
// useage..
const cylinderSurfaceArea = (r, h) => 2*shape.PI*r ( r + h )

Повторный экспорт из другого файла ..

export { cylinderVolume } from 'path'
// re-exporting as default..
export { default as PI } from 'path'

Сравнение некоторых воздействий на размер для вариантов использования:

import _ from 'lodash' // use case..
import * as shape from 'path' // same effect..

Это импортирует весь модуль и оказывает огромное влияние на проект. размер. однако, если мы используем библиотеки вроде loda sh, они рекомендуют это.

import { get, has } from 'lodash'
import { PI, cylinderVolume } from 'path'

удивительно, что разница в размере невелика по сравнению с приведенным выше синтаксисом.

встряхивание деревьев

Современные инструменты сборки (веб-пакет) и другие) объединяют модули и оптимизируют их для ускорения загрузки и удаления неиспользуемых материалов.

, поэтому, чтобы минимизировать влияние на размер, рекомендуемый синтаксис будет

import get from 'lodash/get'

, но все же, когда мы должны импортировать целую кучу вещей, это не практично (или рекомендуется / идеально для удобства чтения) ..

...