当前位置: 首页 > 面试题库 >

Redux中的选择器是什么?

黄仲渊
2023-03-14
问题内容

我想按照这个代码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?


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我已经看过几次CSS代码中使用的“大于”(),但是我无法弄清楚它的作用。它有什么作用? 问题答案: 选择直系子女 例如,如果您有这样的嵌套div: 然后在样式表中声明css规则,如下所示: 您的规则仅适用于具有“中级”类的div,因为这些div是元素为“外部”类的元素的直接后代(直接子代)(当然,除非您声明其他更具体的规则来覆盖这些规则) 。见小提琴。 边注 如果您>>`。 注意:IE

  • 搜索字符并不容易。我在看CSS的时候发现了这个 这是什么意思?

  • 问题内容: CSS问题:如果两个不同的选择器应用于一个元素,谁会赢? 我知道这不应该发生,但是我想调整旧应用程序,而CSS居于中间。 问题答案: 规范中的实际上是合理可读的。综上所述: 规则和内联规则获胜。 否则,通常会赢得更具体的胜利。是比更加具体的选择器。 如果规则同样具体,则以最后宣布的为准。 没有特别的理由说明为什么这种“不应该发生”。通常先指定一个广泛适用的规则,然后添加一个更具体的规则

  • 我见过这些选择器很多次,但并不清楚它们之间的主要区别是什么。有人能解释一下这些符号之间的区别吗?我们应该在什么时候使用这些符号?

  • 问题内容: 我在Twitter Bootstrap中看到了这个选择器: 有谁知道这种技术叫什么及其作用? 问题答案: 这是一个属性通配符选择器。在您提供的示例中,它将查找具有CONTAINS类的任何子元素。 因此,请在此示例中选择元素: 您也可以搜索“开头为…” 这将在这样的事情上工作: 和“以…结尾” 这将工作

  • 问题内容: 我正在阅读react-redux上的API并查看Redux的github示例之一:Redux todo应用 其中一个容器具有(和)接受两个参数,其中一个是ownprops。 API文档说: “如果您的mapStateToProps函数声明为带有两个参数,则它将以存储状态作为第一个参数,并将传递给连接组件的props作为第二个参数来调用,并且只要连接的组件收到新的参数,就会重新调用通过浅