小编典典

Redux中的选择器是什么?

reactjs

我想按照这个代码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减速器(甚至是减速器)看起来与我通常期望的减速器看起来非常不同。

谁能解释选择器是什么,以及getUserreduce-reducer以及reducer如何适合redux-saga?


阅读 288

收藏
2020-07-22

共1个答案

小编典典

getUser 不是缩减器,而是确实的选择器,即知道如何从存储中提取特定数据的函数。

选择器
提供了一个额外的层,这样,如果您更改了商店结构,突然之间您users不再在该位置state.entities.users,而是在state.users.objects.entities(或其他任何位置),则只需要更新getUser选择器,而无需更新应用程序中每个要进行更改的位置引用旧位置。

这使得它们在重构Redux存储时特别方便。

2020-07-22