javascript - 设置动态注册模块的顺序
问题描述
在我的应用程序中,我有一个主要模型,我们称它们为users
. 我有一个模块users
和一个名为list
.
在使用 api 端点时,我将 10 个用户作为一组用户返回。对于每个用户,我使用作为键为模块内的每个用户动态注册一个user
模块。list
users
id
this.registerModule(['users', 'list', user.id], UserModule);
然后我发送一些动作来补充我商店中的数据。这一切都很好。
我有一个 getter 将list
模块(一个包含id
' 作为指向 a 的键的对象user
)解析为用户数组。它看起来像这样:
users: (state) => {
const users = Object.keys(state.list).map(key => state.list[key]);
return users;
}
问题
当vuex
动态注册个人时UserModule
,它会list
按字母顺序在模块中对它们进行排序,而不是模块注册的顺序。这是一个问题,因为我希望用户数组与他们从 api 进来的顺序相同。
例子
如果端点返回 2 个用户,如下所示:
[
{ id: '3', name: 'Bob'},
{ id: '1', name: 'Tom'}
]
然后列表模块将如下所示:
state: {
list: {
1: { id: '1', name: 'Tom'},
3: { id: '3', name: 'Bob'}
}
}
然后users
吸气剂将返回:
[
{ id: '1', name: 'Tom'},
{ id: '3', name: 'Bob'},
]
我的暂定解决方案是在每个模块被消耗时将 order 属性注入到每个模块中,然后按该 order 属性在 getter 排序中。感觉不太好,因为我觉得我无缘无故地添加了一个循环来排序。
问题
- 有没有办法在它们进来时动态地订购注册模块,而不是按字母顺序排列?
- 除了注入“订单”属性之外,谁能想到更好的解决这个问题的方法?
解决方案
推荐阅读
- junit - 带有 Spring JdbcTemplate 的 SimpleJdbcCall 的 Mockito
- python - 应用具有混合布尔值和数值的 pandas GroupBy
- reactjs - 是否聚合了多个 this.setState 调用的状态更改?
- javascript - 仅在 wordpress 简码页面上调用 js 方法
- android - 如何检索用户通过颤振谷歌放置自动完成屏幕选择的位置,以便创建路线?
- java - java.lang.IllegalStateException: enterPictureInPictureMode: 当前活动不支持画中画
- r - 有没有 uniPlot 函数的类似物?
- scala - gradle 使用 kotlin DSL 在 jar 工件名称中包含 scala 版本
- javascript - 如何防止使用php表单提交双击?
- java - 在 Android 中提示用户输入电子邮件