Я пытаюсь следовать этому code в redux-saga
export const getUser = (state, login) => state.entities.users[login]
export const getRepo = (state, fullName) => state.entities.repos[fullName]
который затем используется в саге как this:
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
является редуктором и как он вписывается в редукс-сагу?