我正在 React 中為 Jira Cloud 開發自定義欄位插件。
我有一個變數cfDate1,它將自定義欄位 id 存盤為類似customfield_10072.
所以我想訪問我的自定義欄位 ID 中的時間資料。
假設我的資料是jsonData可變的。我試圖達到,jsonData.fields.[cfDate1]但我得到Error: Identifier expected.
我搜索了一些,但我想我找不到正確的關鍵字來獲得一些解決方案。有沒有人可以幫我弄清楚。我需要學習如何使用字串變數在我的 json 查詢中訪問 json 資料。已經謝謝了!
JSON 格式 ( jsonData):
{
"expand": "renderedFields,names,schema,operations,editmeta,changelog,versionedRepresentations,customfield_10010.requestTypePractice",
"id": "10008",
"self": "https://alimert.atlassian.net/rest/api/2/issue/10008",
"key": "SP-1",
"fields": {
"statuscategorychangedate": "2021-10-11T12:17:41.291 0300",
"customfield_10072": "2021-01-13T02:00:00.000 0300",
"customfield_10073": "2021-01-26T06:30:00.000 0300",
"customfield_10075": "2021-10-14",
"customfield_10076": "2021-10-15" }
uj5u.com熱心網友回復:
它必須是jsonData.fields[cfDate1]和不是jsonData.fields.[cfDate1]。
有四種方法可以訪問物件1的屬性:
| 句法 | 動態 鍵 |
可選 鏈 |
. |
[] |
? |
等價物2 |
|---|---|---|---|---|---|---|
obj.xyz |
不 | 不 | 是的 | 不 | 不 | obj['xyz'] |
obj[key] |
是的 | 不 | 不 | 是的 | 不 | —— |
obj?.xyz |
不 | 是的 | 是的 | 不 | 是的 | obj == null ? obj.xyz : undefinedobj == null ? obj['xyz'] : undefined |
obj?.[key] ?? |
是的 | 是的 | 是的?? | 是的 | 是的 | obj == null ? obj[key] : undefined |
正如你可以在此表中看到,在大多數情況下,你使用任何 .(靜態密鑰)或 [](動態密鑰)。
可選鏈接添加一個?. 然而,在可選的鏈接的情況下,和一動態密鑰,的可能意外語法?.[]使用具有兩個 .和[]3。請注意,這是唯一具有可選鏈接的情況-沒有可選鏈接,語法.[]是不是有效。
1:還有Reflect.get(obj, key),您可以擴展該定義以計算涉及遍歷屬性鏈、呼叫Object.getOwnPropertyDescriptor和訪問的內容,value或者get如果您真的想這樣做。但是對于初學者來說,如果有的話,這些將更具有學術興趣,并且將其包含在正常使用的屬性訪問方法串列中會令人困惑。
2:對于可選鏈接,所示等效項僅適用于沒有進一步鏈接級別的情況(例如obj?.xyz但不是obj?.xyz.abc)。可選鏈運算子的另一個非常有用的屬性是,它會完全停止對運算式其余部分的評估,以防左側為空,這樣您就可以撰寫obj?.xyz.abc而不是obj?.xyz?.abc沒有錯誤Cannot read properties of undefined (reading "abc")。顯示的等效項不起作用。
3:這種略顯尷尬的語法的原因是可選鏈是最近才添加到語言中的,?[]由于三元運算子的含糊不清以及撰寫決議器來處理這種情況增加了難度,因此無法使用。也是如此?.()。有關更多資訊,請參閱可選鏈接提案中的常見問題解答。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/346431.html
標籤:javascript 反应 json jira插件
