Javascript 使用三元运算符动态更改视图高度
我正在尝试使用三元运算符动态更改视图高度 首先,我得到设备的屏幕高度Javascript 使用三元运算符动态更改视图高度,javascript,react-native,ternary-operator,Javascript,React Native,Ternary Operator,我正在尝试使用三元运算符动态更改视图高度 首先,我得到设备的屏幕高度 const { height: SCREEN_HEIGHT, } = Dimensions.get('window') const IS_IPHONE_X = SCREEN_HEIGHT === 812 const IS_IPHONE_XR = SCREEN_HEIGHT === 896 const IS_IPHONE_SIX = SCREEN_HEIGHT === 667 其次,我检查设备是否为iphoneX 使用三
const {
height: SCREEN_HEIGHT,
} = Dimensions.get('window')
const IS_IPHONE_X = SCREEN_HEIGHT === 812
const IS_IPHONE_XR = SCREEN_HEIGHT === 896
const IS_IPHONE_SIX = SCREEN_HEIGHT === 667
其次,我检查设备是否为iphoneX
使用三元运算符很好,但我只能用上面的代码检查两个设备
有没有办法在三元运算符中使用多个条件?
我试过这个。但给了我一个错误:
const IMAGE_BAR_HEIGHT = Platform.OS === 'ios' ?( IS_IPHONE_X ? 332 : IS_IPHONE_XR ? : 368 : IS_IPHONE_SIX : 300) : 0
使用三元运算符肯定可以实现这一点,但不建议使用嵌套三元运算符。我建议在这里使用if-else而不是三元 设高度=0; 如果Platform.OS===“ios”{ 如果是IPHONE{ 高度=332; }否则,如果是IPHONE{ 高度=368; }否则如果是IPHONE六号{ 高度=300; } } 如果你只想用三元来做这个 const height=Platform.OS=='ios'?是IPHONE吗?332:是IPHONE吗?368:IPHONE是六号吗?300 : 0 : 0;
最好使用逻辑运算符和三值运算符
const IMAGE_BAR_HEIGHT = Platform.OS === 'ios' ? ( IS_IPHONE_X && 332 || IS_IPHONE_XR && 368 || IS_IPHONE_SIX && 300) : 0
或者我建议拆分代码
常量屏幕高度=尺寸。获取“窗口”。高度;
iOSDeviceInfo==>{
开关屏高度{
案例812:
返回'X';
案例866:
返回'XR';
判例667:
返回“六”;
违约:
打破
}
}
常量图像\u条\u高度={
X:332,
XR:368,
六点三百分,,
}
const imageHeight=Platform.OS=='ios'?图像条高度[iOSDeviceInfo]:0
没有测试 是的,您可以在同一表达式中使用任意数量的三元运算符,但需要确保其语法正确。后面的部分是_IPHONE _XR?包含错误。问号后面紧跟着一个冒号,这在语法上是不正确的。请删除该冒号。那么IS_IPHONE_六的位是一个不正确/不完整的三元表达式。我猜你想写的是IPHONE六号?300:0
const IMAGE_BAR_HEIGHT = Platform.OS === 'ios' ? ( IS_IPHONE_X && 332 || IS_IPHONE_XR && 368 || IS_IPHONE_SIX && 300) : 0