首页 > 解决方案 > 获取存储在状态中的数组长度时出错

问题描述

我正在尝试计算存储在我的 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",
}

但是,我在加载屏幕时无法读取未定义的属性“长度” 。我是否试图过早地进行计数或其他什么?我该如何解决?

标签: react-nativereact-redux

解决方案


您的状态是这些信息的完整容器(companyId、email..)

要访问该容器,您需要这样做:

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

第一个.user是您在App.js. 二是redux中的状态容器

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

user.companyId

推荐阅读