ReactNative style

所有的核心组件都可以接受style属性。

<Text style={styles.base} />
<View style={styles.background} />

还可以接受数组形式的多个style。

<View style={[styles.base, styles.background]} />

如下面的代码,当this.state.active为false时,styles.active就会被忽略掉

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

如果你坚持的话,你也可以在render方法中创建样式对象,但最好不要这样做(每次渲染都会被重复创建)。如果有多个样式,记得把这样动态创建的样式对象放到数组的最后。

<View
  style={[styles.base, {
    width: this.state.width,
    height: this.state.width * this.state.aspectRatio
  }]}
/>

将样式作为参数传递

为了能够在调用组件的地方对其子组件样式进行自定义,你还可以将样式作为参数进行传递。可以使用View.propTypes.style和Text.propTypes.style来确保传递的参数确实是style类型的。(propTypes是对props的类型检查和限制,参考文档点这里)

var List = React.createClass({
  propTypes: {
    style: View.propTypes.style,
    elementStyle: View.propTypes.style,
  },
  render: function() {
    return (
      <View style={this.props.style}>
        {elements.map((element) =>
          <View style={[styles.element, this.props.elementStyle]} />
        )}
      </View>
    );
  }
});

// ... 在别的文件中引用List组件 ...
<List style={styles.list} elementStyle={styles.listElement} />

支持的属性

下面这些链接中查看最新支持的CSS属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值