基于 redux 状态中的另一个值解构对象
Destructuring object based on another value in redux state
该应用程序有两个不同的选项卡,每个选项卡都有相同的下拉菜单。我目前正在保存 'selectedTab' 这是一个字符串,'selectedTabState' 这是一个包含 tab1 和 tab2 的对象,以及用户选择的字符串。我能够查看用户在哪个选项卡上,同时还可以在选项卡之间切换时保存下拉状态。这是它的外观示例。
selectedTab: 'tab1'
selectedTabState: {
tab1: 'dropdownOptionOne',
tab2: 'dropdownOptionTwo'
}
我想做的是使用解构访问用户所在的任何选项卡的 selectedTabState。我可以做这样的事情吗?
const { selectedStates: { *state of selectedTab* }} = state;
const state = selectedTab === 'tab1' ? selectedTabState.tab1 : selectedTabState.tab2
这对你有用吗
你可以像这样使用 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]
更简单
该应用程序有两个不同的选项卡,每个选项卡都有相同的下拉菜单。我目前正在保存 'selectedTab' 这是一个字符串,'selectedTabState' 这是一个包含 tab1 和 tab2 的对象,以及用户选择的字符串。我能够查看用户在哪个选项卡上,同时还可以在选项卡之间切换时保存下拉状态。这是它的外观示例。
selectedTab: 'tab1'
selectedTabState: {
tab1: 'dropdownOptionOne',
tab2: 'dropdownOptionTwo'
}
我想做的是使用解构访问用户所在的任何选项卡的 selectedTabState。我可以做这样的事情吗?
const { selectedStates: { *state of selectedTab* }} = state;
const state = selectedTab === 'tab1' ? selectedTabState.tab1 : selectedTabState.tab2
这对你有用吗
你可以像这样使用 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]
更简单