【问题标题】:Destructuring object based on another value in redux state基于 redux 状态下的另一个值解构对象
【发布时间】:2019-12-01 17:23:34
【问题描述】:

该应用程序有两个不同的选项卡,每个选项卡都有相同的下拉菜单。我目前正在保存作为字符串的“selectedTab”,以及作为包含 tab1 和 tab2 的对象的“selectedTabState”,以及用户选择的字符串。我可以查看用户在哪个选项卡上,同时还可以在选项卡之间切换时保存下拉状态。这是它的外观示例。

selectedTab: 'tab1'
selectedTabState: {
  tab1: 'dropdownOptionOne',
  tab2: 'dropdownOptionTwo'
}

我想做的是访问用户使用解构的任何选项卡的 selectedTabState。我可以这样做吗?

const { selectedStates: { *state of selectedTab* }} = state;

【问题讨论】:

  • 为什么不只是selectedStates[selectedTab]?不要把事情复杂化

标签: javascript ecmascript-6 redux destructuring


【解决方案1】:

你可以像这样使用 Computed property names 进行解构

const state = {
  selectedTab: 'tab1',
  selectedTabState: {
    tab1: 'dropdownOptionOne',
    tab2: 'dropdownOptionTwo'
  }
}

const { selectedTabState: { [state.selectedTab]: value } } = state;

console.log(value)

但是,正如 Brian Le 所建议的,state.selectedTabState[state.selectedTab] 要简单得多

【讨论】:

    【解决方案2】:
    const state = selectedTab === 'tab1' ? selectedTabState.tab1 : selectedTabState.tab2
    

    这对你有用吗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-22
      • 2022-10-08
      • 2018-07-28
      • 2019-03-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      相关资源
      最近更新 更多