reactjs - 作为数组传递的道具在 Reactjs 的子组件中作为对象类型获取
问题描述
在我的 ReactJS 应用程序中,我ParentComponent
通过将一些传递props
给它来调用子组件
<ChildComponent val={["a1"]} sets={{}} />
在我的内部,我ChildComponent
给了一些控制台来检查正在接收并找到的道具
const ChildComponent = ({val, sets}) => {
console.log("val", typeof(val))
console.log("sets", typeof(sets))
return <p> Hello </p>
}
但是在控制台中我得到了
val object
sets object
为什么我在检查类型时将数组作为道具传递为对象?
解决方案
因为在表面之下阵列是对象(连线正确),即如果你console.log(typeof [])
将是object
。
所以有用的检查是:
var isArr = val instanceof Array;
var isArr = Array.isArray(val);
但最可靠的方法是:
const isArray = Object.prototype.toString.call(val) == '[object Array]';
推荐阅读
- office365 - 无法在 Office 365 Excel 和 Winword 应用程序中使用电子邮件快捷方式选项
- amazon-web-services - 是否值得在不同的 AWS 位置发布不同的站点语言?
- unit-testing - 使用 dotCover 命令行工具(JetBrains)的单元测试覆盖率 - 是否可以使用 x64 dll 测试运行此工具?
- selenium-webdriver - 外部代理 Titanium Web 代理?
- javascript - chrome扩展错误:拒绝执行内联事件处理程序,因为
- jpeg - 如何为 JEPG 霍夫曼值建立查找表
- unit-testing - 未执行任何测试(Play Framework)
- python - 有没有办法在字节正则表达式中使用 \b ?(Python)
- python - 如何提高拆分列表的速度?
- java - keytool 要求输入密码以读取 java 证书 ubuntu 18.04