React Native中的条件样式

时间:2018-10-19 05:12:43

标签: javascript android react-native

我的React-Native应用程序中有这个ImageBackground标签。

const{height,width} = Dimensions.get('window);
const navHeight = ExtraDimensions.get('SOFT_MENU_BAR_HEIGHT');

render(){
 return(
  <ImageBackground source={Images.bg} style={{width=width+48,height=height}}>
     //content
  </ImageBackground>
 );
}

数字48是默认Android导航栏的高度(其中一个包含BACK按钮)。 navHeight用于检测设备上导航栏的高度(请参见此处:Alexander Terekhov)。

由于现在有不带导航栏的设备,我想使用ImageBackground样式进行条件样式设置,以在值style={styles.bg1}时采用navHeight,在值style={styles.bg2}时采用navHeight没有<ImageBackground source={Images.bg} style={navHeight=0 ? styles.bg1 : styles.bg2}> 值。 我可以知道在哪里以及如何实施样式吗?谢谢

我目前做错的方法是

{{1}}

1 个答案:

答案 0 :(得分:6)

存在语法错误,为了进行比较,您必须使用==

尝试一下

<ImageBackground source={Images.bg} style={ (navHeight==0) ? styles.bg1 : styles.bg2}>

此外,我建议您使用Image标记,并使用position="absolute"向其附加一个子组件。因为在borderRadius标签的情况下,ImageBackground之类的某些样式道具无法使用。

希望这对您有所帮助!