我想按照这个代码在redux-saga
export const getUser = (state, login) => state.entities.users[login]
export const getRepo = (state, fullName) => state.entities.repos[fullName]
import { getUser } from '../reducers/selectors'
// load user unless it is cached
function* loadUser(login, requiredFields) {
const user = yield select(getUser, login)
if (!user || requiredFields.some(key => !user.hasOwnProperty(key))) {
yield call(fetchUser, login)
}
}
这个getUser
减速器(甚至是减速器)看起来与我通常期望的减速器看起来非常不同。
谁能解释选择器是什么,以及getUser
reduce-reducer以及reducer如何适合redux-saga?
getUser
它不是一个约简器,而是一个选择器,即知道如何从存储中提取特定数据的函数。
选择器提供了一个额外的层,这样,如果您更改了商店结构,突然之间您users
不再在该位置state.entities.users
,而是在state.users.objects.entities
(或任何其他位置),则只需要更新getUser
选择器,而无需更新应用程序中每个要更改位置的位置引用旧位置。
在重构Redux存储时,这使它们特别方便。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句