react-native - 获取存储在状态中的数组长度时出错
问题描述
我正在尝试计算存储在我的 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",
}
但是,我在加载屏幕时无法读取未定义的属性“长度” 。我是否试图过早地进行计数或其他什么?我该如何解决?
解决方案
您的状态是这些信息的完整容器(companyId、email..)
要访问该容器,您需要这样做:
const user = useSelector((state) => state.user.user);
第一个.user
是您在App.js
. 二是redux中的状态容器
然后在访问时companyId
,您只需要:
user.companyId
推荐阅读
- javascript - 如何在 Typescript 中定义条件字符串类型,如流?
- git - 是否可以查明是否有人在 git commit 中使用了日期选项?
- android - 当我在 Android 中杀死一个进程时,服务没有重新启动
- javascript - certificate.php:5 Uncaught ReferenceError: TEstasdasd is not defined
- .net - LINQ 获取对象的完整列表,仅包含符合特定条件的属性
- node.js - 如何使用身份验证令牌发布 npm 包?错误 401 - 未经授权。您必须登录
- android - 如何在 react-native 上使用 svg 图像?
- java - Java Spring boot Sql 数据库设计
- javascript - 未捕获的错误:无效的挂钩调用。反应式
- if-statement - 谷歌表格对前几行数据求和 + 常量变量