React Native - 动态更改样式表

时间:2018-03-14 12:53:12

标签: react-native react-native-android react-native-ios

我正在编写一个反应原生的项目,需要rtl支持(英语和阿拉伯语)。然而,我正在尝试使用自己的代码而不是使用rtl插件。直截了当我想知道是否有可能我可以动态更改样式表,以便所有类在哪里:position:absolute。如果它具有左侧或右侧属性,则反转它?

例如,如果一个类绝对定位,并且具有: 左:20,

我可以自动将其变为: 右:20,

反过来一样吗?这可能是本机反应。

1 个答案:

答案 0 :(得分:1)

是的,您可以执行类似

的操作
const styles = StyleSheet.create({
  yourView: {
    left: isRight ? 0 : 20,
    right: isRight? 20: 0,
  },
});

其中isRight是您之前定义的变量

另一种方法是创建将其分成不同的样式并将样式附加到渲染上。像

这样的东西
const styles = StyleSheet.create({
  yourView: {
    ...common styles here
  },
  leftView: {
    left: 20,
  },
  rightView: {
    right: 0,
  },
});

然后在渲染方法中,你会将样式附加为:

render() {
  return (
    <View styles={[styles.mainView, isRight ? styles.leftView : styles.rightView]}/>
  )
}