我對 React 條件渲染有問題。如果設定了特定的道具,我想渲染它,所以首先我要檢查道具是否存在,然后輸出它,否則輸出 0,但是 React 在檢查變數在第一次加載時未定義時是否存在問題...
number:
props.dashboardCards[0].items.thisMonth[0].itemTitle
? props.dashboardCards[0].items.thisMonth[0].itemTitle
: 0,
這是我的代碼,我想創建一個帶有 number 欄位的物件,并且在該欄位中我想設定這個 prop,如果它存在,否則為 0。React 不斷給我錯誤:
型別錯誤:無法讀取未定義的屬性(讀取“itemTitle”)
uj5u.com熱心網友回復:
thisMonth可能是空的或未定義的。您可以使用可選鏈來解決這個問題:
number: props.dashboardCards[0]?.items?.thisMonth[0]?.itemTitle ?? 0,
現在props.dashboardCards[0].items.thisMonth[0].itemTitleifexistsnumber將是它的值,或者它將是 0。
可選的鏈接運算子 (?.) 使您能夠讀取位于連接物件鏈深處的屬性值,而無需檢查鏈中的每個參考是否有效。
從此處了解有關可選鏈接的更多資訊。
uj5u.com熱心網友回復:
錯誤說,沒有itemTitle了在thisMonth陣列。
如果它來自 API,您需要等待才能獲得它。你可以簡單地檢查props由console.log(props)使用點符號,以獲得前檢查itemTitle。
您還可以使用可選鏈接檢查值?:
props?.dashboardCards[0]?.items?.thisMonth[0]?.itemTitle
它的意思是:
if(props){
if(dashboardCards[0]){
if(items){
if(thisMonth[0]){
props.dashboardCards[0].items.thisMonth[0].itemTitle
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343826.html
標籤:javascript 反应
