的
How can we remove this multiple if...else...if condition check with hard coded values and make it configurable may be by modifying the original data structure or some other way?
uj5u.com熱心網友回復:
我認為您只需要添加一個“hiddenField”鍵,其中包含在欄位值更改時需要隱藏的所有鍵。
[
...
{
"hiddenField": {
"vaccinated": ["reason", "moreDetails"],
"not_vaccinated": [
"dose",
"doseOneDetails",
"doseTwoDetails",
"moreDetails"
],
"other": ["reason", "dose", "doseOneDetails", "doseTwoDetails"]
}
}
...
]
然后我們將您的整個 if..else 代碼更改為此
if (Array.isArray(name) && name.length) {
const [fieldName] = name;
if (fieldName === "vaccination_status") {
setFieldsToHide((data[1] as any).hiddenField[value]);
}
}
這是一個例子
uj5u.com熱心網友回復:
如果您需要“自己的解決方案”,那么實作它的方法太多了。
可能這個小例子對你有用,但你必須進一步開發它。
資料:
"properties": { "groupName": "Letter Details", "maxlength": "400", "display": {"equals": ["vaccinated", "not_vaccinated", "none", "inherits"]} }
和代碼:
if ( typeof Properties.display === "string" )
setProperty("display",Properties.display);
else if ( typeof Properties.display === "object" )
if( Properties.display.equals )
setProperty("display", getFormValue(Properties.display.equals[0]) === Properties.display.equals[1] ? Properties.display.equals[2] : Properties.display.equals[3]
else if( Properties.display.less_than )
...
此外,每個屬性都可以自動化: if ( typeof Properties.[counter] ) ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/408872.html
標籤:
下一篇:用數值替換符號時變變數
