我正在创建一个简单的示例来学习redux-orm库。我已经设置了我的减速器,如下所示,一切似乎都很好。
const orm = new ORM();
orm.register(Profile, User);
export function reducer(state, {type, payload}) {
const session = orm.session(state || orm.getEmptyState());
switch(type) {
case 'CREATE_USER':
session.User.create(payload)
break;
case 'CREATE_PROFILE':
session.Profile.create(payload)
break;
}
return session.state;
}我将按照示例创建一个简单的选择器,该选择器获取数据库中的整个用户列表:
export const getUsers = createSelector(orm, session => {
return session.User.map(user => {
return user.ref
});
});然而,在使用选择器时,Chrome给了我一个错误:ERROR TypeError: session.User.map is not a function
我是不是遗漏了什么?或者这是一个库的bug?
发布于 2017-12-16 03:48:38
您需要使用toModelArray或toRefArray。与您在示例中使用的代码(获取每个User的引用)等效的代码如下:
return session.User.all().toRefArray()如果需要做进一步的处理,比如获取关系或仅细化到属性的子集,可以像处理普通数组一样使用toModelArray和map。
https://stackoverflow.com/questions/47837287
复制相似问题