React Native写入样式

时间:2015-05-09 16:35:30

标签: css react-native

快速提问。 是否可以更改已定义样式的值?如: styles.container.backgroundColor?

我试图写入只读属性'错误,但这似乎很疯狂,我无法动态改变背景颜色。有没有最好的做法,这是我错过了?

非常感谢, 一个。

2 个答案:

答案 0 :(得分:9)

当您调用StyleSheet.create时,它会生成一个不可变对象。它这样做是为了它可以只使用样式表的ID与本机桥来回通信。使StyleSheet不可变简化了这种沟通。

但是,您可以覆盖样式表中的特定规则。参见" React Native Fish"以项目为例:https://github.com/istarkov/react-native-fish/blob/master/application/common/flake.js

对于您的用例,我认为它类似于:

return (
    <View style={[styles.container, { backgroundColor: this.state.backgroundColor }]}></View>
);
// this.setState({backgroundColor: "#aaa"});

答案 1 :(得分:4)

这已在文档中讨论过: http://facebook.github.io/react-native/docs/style.html#content

样式根据this.state.active

的布尔值更改
<View style={[styles.base, this.state.active && styles.active]} />