【问题标题】:React Native writing to Styles将本机写作反应到样式
【发布时间】:2015-05-09 16:35:29
【问题描述】:

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

我收到“尝试写入只读属性”错误,但这似乎很疯狂,因为我无法动态更改背景颜色。有没有我错过的最佳实践方法?

非常感谢, 一个。

【问题讨论】:

    标签: css react-native


    【解决方案1】:

    当您调用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"});
    

    【讨论】:

    • 完美,我想我现在明白了,我必须创建一个具有自己的可以动态更改的 propstyles 的类。
    【解决方案2】:

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

    样式根据 this.state.active 的布尔值改变

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      相关资源
      最近更新 更多