[英]“Object is possibly 'undefined'” in reactjs with typescript
[英]Object is possibly 'undefined' Reactjs
這個問題解決方案已經在stackoverflow中可用,但是我仍然很困惑,我仍然使用與他們回答相同的方法 go 這個錯誤請幫助我擺脫這個錯誤謝謝我的 object 列表是
const typeValue = [
{name: "Subscription", value: "subscription", rank: 2},
{name: "Single", value: "single", rank: 3},
{name: "Trial", value: "trial", rank: 0},
{name: "Unlimited", value: "unlimited", rank: 1000},
{name: "Promo", value: "promo", rank: 1},
{name: "Test", value: "test", rank: 0},
{name: "Brand", value: "brand", rank: 3}
]
任何我想找到排名號碼
rank: typeValue.find(x => x.value === snapshot.data().type).rank
如果找不到匹配項find
將返回undefined
,然后調用.rank
是非法的。 要解決,請改用?.rank
:
rank: typeValue.find(x => x.value === snapshot.data().type)?.rank
如果問題仍然存在,那么您可能必須對.type
執行相同的操作:
rank: typeValue.find(x => x.value === snapshot.data()?.type)?.rank
typeValue.find(x => x.value === snapshot.data().type)
您試圖在typeValue
中找到一個滿足x.value === snapshot.data().type
的元素,但snapshot.data().type
可以是任何東西,所以 TypeScript 警告typeValue.find(x => x.value === snapshot.data().type)
可能會返回undefined
。
如果你想告訴 TypeScript x.value === snapshot.data().type
肯定會匹配其中一個元素,你可以使用!
:
rank: typeValue.find(x => x.value === snapshot.data().type)!.rank
你也可以用?
如果rank
可以undefined
:
rank: typeValue.find(x => x.value === snapshot.data().type)?.rank
typeValue
數組變量的類型:-const typeValue: { name: string; value: string; rank: number }[] = [
{ name: "Subscription", value: "subscription", rank: 2 },
{ name: "Single", value: "single", rank: 3 },
{ name: "Trial", value: "trial", rank: 0 },
{ name: "Unlimited", value: "unlimited", rank: 1000 },
{ name: "Promo", value: "promo", rank: 1 },
{ name: "Test", value: "test", rank: 0 },
{ name: "Brand", value: "brand", rank: 3 },
];
snapshot.data().type
添加類型!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.