99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

樣式

2019-08-14 14:21 更新

React Native 不實(shí)現(xiàn) CSS,而是依賴于 JavaScript 來為你的應(yīng)用程序設(shè)置樣式。這是一個(gè)有爭議的決定,你可以閱讀那些幻燈片,了解背后的基本原理。

聲明樣式

在 React Native 中聲明樣式的方法如下:

var styles = StyleSheet.create({  base: {
    width: 38,
    height: 38,
  },
  background: {
    backgroundColor: '#222222',
  },
  active: {
    borderWidth: 2,
    borderColor: '#00ff00',
  },
});

StyleSheet.create 的創(chuàng)建是可選的,但提供了一些關(guān)鍵優(yōu)勢。它通過將它們轉(zhuǎn)換為引用一個(gè)內(nèi)部表的純數(shù)字,來確保值是不可變的不透明的。通過將它放在文件的最后,也確保了它們?yōu)閼?yīng)用程序只創(chuàng)建一次,而不是每一個(gè) render 都創(chuàng)建。

所有的屬性名稱和值是工作在網(wǎng)絡(luò)中的一個(gè)子集。對于布局來說,React Native實(shí)現(xiàn)了 Flexbox。

使用樣式

所有的核心組件接受樣式屬性。

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

它們也接受一系列的樣式。

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

行為與 Object.assign 相同:在沖突值的情況下,從最右邊元素的值將會(huì)優(yōu)先,并且 falsy 值如 falseundefined和 null 將被忽略。一個(gè)常見的模式是基于某些條件有條件地添加一個(gè)樣式。

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

最后,如果真的需要,您還可以在render中創(chuàng)建樣式對象,但是這種做法非常不贊成。最后把它們放在數(shù)組定義中。

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

樣式傳遞

為了讓一個(gè) call site 定制你的子組件的樣式,你可以通過樣式傳遞。使用 View.propTypes.style 和Text.propTypes.style,以確保只有樣式被傳遞了。

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>
    );
  }
});// ... in another file ...<List style={styles.list} elementStyle={styles.listElement} />

屬性支持

最新的 CSS 屬性支持。

  • View 屬性

  • Image 屬性

  • Text 屬性

  • Flex 屬性


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號