我有一个名为 Login 的组件,以及这些选择器:
const selectLogin = () => (state) => state.get('login');
const selectUser = () => createSelector(
selectLogin(),
(loginState) => loginState.get('user')
);
以下是“登录”组件的状态:
login: {
user: {
id: 206
}
}
在另一个组件中,我想选择“用户”对象。
在我的文件顶部,我有
import { createStructuredSelector } from 'reselect';
import {
selectLogin,
selectUser
} from 'containers/Login/selectors';
const mapStateToProps = createStructuredSelector({
login: selectLogin(),
user: selectUser(),
});
当我使用“selectUser()”时,我得到“loginState.get 不是函数”。
如果我删除对“selectUser()”的所有引用,我可以访问 this.props.login.user。这对我有用,但我想知道为什么我不能从“登录”状态中选择。这些示例在选择器中使用相同的“子状态”约定,并且它们有效。有任何想法吗?