[英]Props passed as array is getting as object type in the child component in 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
為什么我在檢查類型時將數組傳遞為 props 作為對象?
因為在表面之下,數組是 object (連線正確),即如果您console.log(typeof [])
將是object
。
所以對它有用的檢查是:
var isArr = val instanceof Array;
var isArr = Array.isArray(val);
但最可靠的方法是:
const isArray = Object.prototype.toString.call(val) == '[object Array]';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.