有没有办法根据选择有条件地导出值?

Is there a way to export a value conditionally on a selection?

我有一些非常基本的 Typescript 代码:

export const defaultListingFormValues = {
  itemWeight: 1
}

有没有办法将 itemWeight 的默认值更改为基于通过列表表单的下拉列表选择的项目类别的条件?

类似 dress = 0.5, heels = 1, boots = 2, etc. 的内容取决于选择的是哪个选项?

您可以将类别 objectsdefaultListingFormValues 定义为 { itemWeight: 1, dress: { itemWeight: 1 },... }

并将其与下拉列表中的 category 值一起使用,如下所示。这里 categoryFromDropDown 持有 category from dropdowndress。使用 condition 所以如果任何 category 没有定义那么它将 return 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);