我对react/JS还比较陌生,所以这个问题听起来有点傻:
我需要根据位置设置多个变量(系统变量)。这些变量应该是常量,因为它们对于给定的示例永远不会改变。
这是我目前的解决方案,它工作,但它感觉非常错误的定义其他变量声明中的变量。似乎也不可能将footerWidth和footerAltText声明为没有初始值的常量。
<Box
as='img'
width={footerWidth}
justifyContent='center'
alignContent='center'
src={footerLogoSource}
alt={footerAltText}
/>
这些属性由我的features.ts提供:
export let footerWidth: string
export let footerAltText: string
export const footerLogoSource: string =
getAppConfig().contextPath +
(() => {
switch (getAppConfig().landesvariante) {
case Variante.SN:
footerWidth = '30%'
footerAltText = 'lorem ipsum'
return '/assets/kofin_eu_logo.svg'
case Variante.BB:
footerWidth = '20%'
footerAltText = 'lorem ipsum 2'
return '/assets/logo_bb.svg'
default:
return null
}
})()
一个解决方案是为3个变量做3个开关情况配置,但这会导致大量重复的代码。
”有一个正确的方法来做这个吗?**
2条答案
按热度按时间bnlyeluc1#
下面是使用array destructuring的方法
也可以使用对象解构
dohp0rv52#
您也可以在不使用任何析构或自调用函数的情况下,通过一些额外的类型来完成此操作