"map is not a function" 使用 redux-orm 0.9.0
"map is not a function" with redux-orm 0.9.0
我正在创建一个简单示例来学习 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
我错过了什么吗?或者这是库的错误?
您需要使用 toModelArray
或 toRefArray
。在你的例子中你似乎想要的等效代码(获取每个 User
的引用)将是:
return session.User.all().toRefArray()
如果您需要进行进一步的处理,例如获取关系或仅精炼属性的子集,请像处理普通数组一样使用 toModelArray
和 map
通过它。
我正在创建一个简单示例来学习 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
我错过了什么吗?或者这是库的错误?
您需要使用 toModelArray
或 toRefArray
。在你的例子中你似乎想要的等效代码(获取每个 User
的引用)将是:
return session.User.all().toRefArray()
如果您需要进行进一步的处理,例如获取关系或仅精炼属性的子集,请像处理普通数组一样使用 toModelArray
和 map
通过它。