优化样式条件以获得更好的图案
optimize style condition for better pattern
你好,我想在 JSX 中更改我的 CSS 条件:
style={{
background:
(input.categoryName[0] === "A" ? "#FF6F33" : null) ||
(input.categoryName[0] === "B" ? "#2C828f" : null) ||
(input.categoryName[0] === "C" ? "#C048EE" : null) ||
(input.categoryName[0] === "E" ? "#01D584" : null) ||
(input.categoryName[0] === "F" ? "#FF47BE" : null) ||
(input.categoryName[0] === "G" ? "#F96693" : null) ||
(input.categoryName[0] === "H" ? "#549EF0" : null) ||
(input.categoryName[0] === "I" ? "#FEA544" : null),
}}
像这样:
(input.categoryName[0] === "A" ? "#FF6F33" :
=== "B" ? "#2C828f" :
=== "C" ? "#C048EE" :
=== "E" ? "#01D584" :
=== "F" ? "#FF47BE" :
=== "G" ? "#F96693" :
=== "H" ? "#549EF0" :
=== "I" ? "#FEA544" : null),
有什么建议吗?
要映射 key-value 对的对象可能会简化您的代码。
const background = {
'default': '#ff0000',
'a': '#FF6F33',
'b': '#2C828f',
// etc.
}
const category = input.categoryName[0].toLowerCase() ?? 'default'
style={{
background: (background[category])
}}
你好,我想在 JSX 中更改我的 CSS 条件:
style={{
background:
(input.categoryName[0] === "A" ? "#FF6F33" : null) ||
(input.categoryName[0] === "B" ? "#2C828f" : null) ||
(input.categoryName[0] === "C" ? "#C048EE" : null) ||
(input.categoryName[0] === "E" ? "#01D584" : null) ||
(input.categoryName[0] === "F" ? "#FF47BE" : null) ||
(input.categoryName[0] === "G" ? "#F96693" : null) ||
(input.categoryName[0] === "H" ? "#549EF0" : null) ||
(input.categoryName[0] === "I" ? "#FEA544" : null),
}}
像这样:
(input.categoryName[0] === "A" ? "#FF6F33" :
=== "B" ? "#2C828f" :
=== "C" ? "#C048EE" :
=== "E" ? "#01D584" :
=== "F" ? "#FF47BE" :
=== "G" ? "#F96693" :
=== "H" ? "#549EF0" :
=== "I" ? "#FEA544" : null),
有什么建议吗?
要映射 key-value 对的对象可能会简化您的代码。
const background = {
'default': '#ff0000',
'a': '#FF6F33',
'b': '#2C828f',
// etc.
}
const category = input.categoryName[0].toLowerCase() ?? 'default'
style={{
background: (background[category])
}}