我正試圖對來自API的回應進行解構。回應看起來像下面這樣。
只有a和b將被用于程式中。
response = {
data: {
someData: {
a:1,
b:2.
}
}
結構化的
const {data: { someData: { a,b } } } = 回應
現在,如果資料在回應中不存在,應用程式有可能會中斷。我想設定默認值為data和someData。有什么方法可以設定默認值嗎?
嘗試過:但由于意外的標記,扔出了lint錯誤
。const {data= {}: { someData = {}: { a,b } } } = response
默認值放在最后,而不是緊隨變數之后。
而且它需要有someData:嵌套物件來提供那里的默認值。
const response={};
const {data: {someData: { a,b } } = {someData: {a:0, b:0}}。} = 回應。
console.log(a, b);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
你需要提供如下所示的默認值:
const {data: { someData: { a, b } = {} } = {} } = 回應。
MDN docs 上的這個例子表明,默認值應該放在最后,而不是緊跟在屬性名稱之后。
如果解壓后的屬性是undefined,那么默認值將被用作嵌套解構的目標。
示例:
。const response = {
data: {}.
};
const {data: { someData: { a, b } = {} } = {} } = 回應。
console.log(a, b);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
另一個選擇是使用可選鏈,在我看來,這是一個更好的代碼可讀性的方法:
response?.data?.someData?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/306595.html
標籤:
