获取状态中存储的数组长度时出错

时间:2020-05-28 10:55:10

标签: react-native react-redux

我试图计算以我的redux状态存储的数组中的项目数。这是我的代码:

const user = useSelector((state) => state.user);

const userCompanies = user.companyId;

if ( userCompanies.length == 1 ) {
    alert('Only one company');
};

我的用户对象如下所示(并通过控制台日志很好地输出):

Object {
"companyId": Array [
    "NhOmasfaJWpFDd9erU",
],
"email": "example@gmail.com",
"userId": "jGibL0twsafsqYAmxx9X0C2",
}

但是,在加载屏幕时,我得到无法读取未定义的属性'length'。我是否想过早进行计数?我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的州是这些信息(companyId,电子邮件..)的整个容器

要访问该容器,您需要执行以下操作:

const user = useSelector((state) => state.user.user);

第一个.user是您在App.js中定义的密钥。第二个是redux中的状态容器

然后,在访问companyId时,您只需:

user.companyId