Есть ли способ экспортировать значение при условии выбора? - PullRequest
1 голос
/ 06 августа 2020

У меня очень базовый c Код машинописного текста:

export const defaultListingFormValues = {
  itemWeight: 1
}

Есть ли способ изменить значение по умолчанию itemWeight на условное в зависимости от категории элемента, выбранной в раскрывающемся списке для форма листинга?

Что-то вроде dress = 0.5, heels = 1, boots = 2, etc. в зависимости от того, какой вариант выбран?

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете определить свой defaultListingFormValues с категорией objects как { itemWeight: 1, dress: { itemWeight: 1 },... }.

И использовать его со значением category из раскрывающегося списка, как показано ниже. Здесь categoryFromDropDown содержит category from dropdown, т.е. dress. Используется condition, поэтому, если какой-либо category не определен, он вернет значение default.

let defaultValue = defaultListingFormValues[categoryFromDropDown] ?
      defaultListingFormValues[categoryFromDropDown].itemWeight :
      defaultListingFormValues.itemWeight;

Попробуйте ниже. Для демонстрации export и import утверждения комментируются.

// export const defaultListingFormValues = {
const defaultListingFormValues = {
  itemWeight: 1,
  dress: {
    itemWeight: 0.5
  },
  heels: {
    itemWeight: 1
  },
  boots: {
    itemWeight: 2
  }
}

// When you access 
// import defaultListingFormValues from '...';
let categoryFromDropDown = 'dress';
let defaultValue = defaultListingFormValues[categoryFromDropDown] ?
  defaultListingFormValues[categoryFromDropDown].itemWeight :
  defaultListingFormValues.itemWeight;
  
console.log(defaultValue);

// category which is not present in defaultListingFormValues.
categoryFromDropDown = 'aaa';
defaultValue = defaultListingFormValues[categoryFromDropDown] ?
  defaultListingFormValues[categoryFromDropDown].itemWeight :
  defaultListingFormValues.itemWeight;
  
console.log(defaultValue);
...