在 react UI 组件中显示标准化数据
Displaying normalized data in the react UI component
假设我们在 redux 存储中有像这样的规范化对象。
{
entities: {
plans: {
1: {title: 'A', exercises: [1, 2, 3]},
2: {title: 'B', exercises: [5, 6]}
},
exercises: {
1: {title: 'exe1'},
2: {title: 'exe2'},
3: {title: 'exe3'}
5: {title: 'exe5'}
6: {title: 'exe6'}
}
},
currentPlans: [1, 2]
}
我想在 UI 组件中显示每个计划练习的详细信息。有点像。
plan 1
title A
exercises
exercise 1
title: 'exe1'
exercise 2
title: 'exe2'
..........
plan 2
title B
exercises
exercise 5
title: 'exe5'
........
我必须再次反规范化吗?我如何转换数据以及在哪里?我是否使用 connectStateToProps 来做类似
的事情
plans: some mapping function that will create nested plans->exercise array
或者有其他方法吗?
是的,您必须在显示之前进行反规范化。例如,如果您将活动用户列表存储为非规范化的用户 ID 列表,则必须通过这些列表进行映射,并为每个从状态树中获取相应的对象。
是的,可能在 mapStateToProps 中执行此操作。
某种推荐的方法是使用 (state) => data 的函数,该函数将从状态中读取所需的任何内容,并形成将提供给您的组件的最终结构。
为此目的使用 https://github.com/reactjs/reselect 很常见,因为它还会记住您的选择器的输出以获得更好的性能。请注意,就像 redux 中的大多数东西一样,它不是魔法,你完全可以不用它。特别是如果你现在只是在玩这个框架。
假设我们在 redux 存储中有像这样的规范化对象。
{
entities: {
plans: {
1: {title: 'A', exercises: [1, 2, 3]},
2: {title: 'B', exercises: [5, 6]}
},
exercises: {
1: {title: 'exe1'},
2: {title: 'exe2'},
3: {title: 'exe3'}
5: {title: 'exe5'}
6: {title: 'exe6'}
}
},
currentPlans: [1, 2]
}
我想在 UI 组件中显示每个计划练习的详细信息。有点像。
plan 1
title A
exercises
exercise 1
title: 'exe1'
exercise 2
title: 'exe2'
..........
plan 2
title B
exercises
exercise 5
title: 'exe5'
........
我必须再次反规范化吗?我如何转换数据以及在哪里?我是否使用 connectStateToProps 来做类似
的事情 plans: some mapping function that will create nested plans->exercise array
或者有其他方法吗?
是的,您必须在显示之前进行反规范化。例如,如果您将活动用户列表存储为非规范化的用户 ID 列表,则必须通过这些列表进行映射,并为每个从状态树中获取相应的对象。
是的,可能在 mapStateToProps 中执行此操作。
某种推荐的方法是使用 (state) => data 的函数,该函数将从状态中读取所需的任何内容,并形成将提供给您的组件的最终结构。
为此目的使用 https://github.com/reactjs/reselect 很常见,因为它还会记住您的选择器的输出以获得更好的性能。请注意,就像 redux 中的大多数东西一样,它不是魔法,你完全可以不用它。特别是如果你现在只是在玩这个框架。