反应原生写入样式

问题描述:

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

我得到'尝试写入只读属性'错误,但这似乎很疯狂,我无法即时更改背景颜色。有没有这样做的最佳做法,我错过了?

非常感谢, a。

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

但是,您可以覆盖样式表中的特定规则。请参阅“响应土著鱼”项目为例: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"}); 
+0

完美的布尔值,我想我明白了,现在,我不得不创建一个类有自己的公关可以动态更改的opstyles。 – antonmills

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

风格变化每this.state.active

<View style={[styles.base, this.state.active && styles.active]} /> 
+0

非常感谢,阅读完该页后有意义! – antonmills