React Native學(xué)習(xí)-03-Props玉组、State

上一遍文章已經(jīng)了解了元素的概念,大多數(shù)元素是可以在創(chuàng)建的時(shí)候通過不同的參數(shù)被個(gè)性化(Customized)的丁侄。這些參數(shù)就叫做prop惯雳。
例如,一個(gè)基本的RN元素Image鸿摇。當(dāng)你創(chuàng)建一個(gè)圖片視圖是石景,你可以通過使用名為source的prop來指明圖片的資源地址來顯示不同的圖片。

import React, { Component } from 'react';
import { AppRegistry, Image } from 'react-native';

class Bananas extends Component {
  render() {
    let pic = {
      uri: 'https://imgsa.baidu.com/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=307b5bee8744ebf8797c6c6db890bc4f/32fa828ba61ea8d3a60416e9970a304e251f583c.jpg'
    };
    return (
      <Image source={pic} style={{width: 193, height: 110}}/>
    );
  }
}

AppRegistry.registerComponent('Bananas', () => Bananas);

注意上述代碼中的 {pic},在JSX中鍵入變量pic拙吉。在JSX中可以在{ }中仿佛JavaScript內(nèi)容潮孽。

自己定義的元素個(gè)可以使用prop,這使得你可以定義一個(gè)元素并在app中通過設(shè)置不同的prop多次使用它筷黔。在 render 方法中使用this.props往史,如下:

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class Greeting extends Component {
  render() {
    return (
      <Text>Hello {this.props.name}!</Text>
    );
  }
}

class LotsOfGreetings extends Component {
  render() {
    return (
      <View style={{alignItems: 'center'}}>
        <Greeting name='Rexxar' />
        <Greeting name='Jaina' />
        <Greeting name='Valeera' />
      </View>
    );
  }
}

AppRegistry.registerComponent('LotsOfGreetings', () => LotsOfGreetings);

上述,name作為一個(gè)prop來定制化Greeting元素佛舱,是的我們可以在JSX中復(fù)用Greeting元素椎例。view元素是一個(gè)視圖容器元素。

State

本文了解了使用porp來定制化元素请祖,想要使是界面變化订歪,下面需要了解stat概念。想要控制一個(gè)元素损拢,需要把握兩個(gè)概念,prop和state撒犀。如果許具需要變化福压,就需要使用state了。
在構(gòu)造方法中初始化state或舞,之后使用setState來改變它荆姆。例如,想要使字符閃爍:

import React, { Component } from 'react';
import { AppRegistry, Text, View } from 'react-native';

class Blink extends Component {
  constructor(props) {
    super(props);
    this.state = {showText: true};

    // Toggle the state every second
    setInterval(() => {
      this.setState({ showText: !this.state.showText });
    }, 1000);
  }

  render() {
    let display = this.state.showText ? this.props.text : ' ';
    return (
      <Text>{display}</Text>
    );
  }
}

class BlinkApp extends Component {
  render() {
    return (
      <View>
        <Blink text='I love to blink' />
        <Blink text='Yes blinking is so great' />
        <Blink text='Why did they ever take this out of HTML' />
        <Blink text='Look at me look at me look at me' />
      </View>
    );
  }
}

AppRegistry.registerComponent('BlinkApp', () => BlinkApp);

在實(shí)際的App中映凳,state可能會(huì)根據(jù)服務(wù)器數(shù)據(jù)的變化胆筒,或者用戶輸入的變化而變化。你可以使用類似于Redux的state容器來操作state而不是視同setState方法。

在React Native中仆救,State的使用方法和React中的一樣抒和,想要更詳細(xì)的了解state的操作,可以閱讀 React.Component API

小結(jié)

通過prop 和 state可實(shí)現(xiàn)對(duì)元素的操控彤蔽,如果想要是的頁(yè)面更美觀摧莽,下面就需要理解Style了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顿痪,一起剝皮案震驚了整個(gè)濱河市镊辕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蚁袭,老刑警劉巖征懈,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異揩悄,居然都是意外死亡卖哎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門虏束,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棉饶,“玉大人,你說我怎么就攤上這事镇匀≌赵澹” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵汗侵,是天一觀的道長(zhǎng)幸缕。 經(jīng)常有香客問我,道長(zhǎng)晰韵,這世上最難降的妖魔是什么发乔? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮雪猪,結(jié)果婚禮上栏尚,老公的妹妹穿的比我還像新娘。我一直安慰自己只恨,他們只是感情好译仗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著官觅,像睡著了一般纵菌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上休涤,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天咱圆,我揣著相機(jī)與錄音,去河邊找鬼。 笑死序苏,一個(gè)胖子當(dāng)著我的面吹牛手幢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杠览,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弯菊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了踱阿?” 一聲冷哼從身側(cè)響起管钳,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎软舌,沒想到半個(gè)月后才漆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡佛点,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年醇滥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超营。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸳玩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出演闭,到底是詐尸還是另有隱情不跟,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布米碰,位于F島的核電站窝革,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吕座。R本人自食惡果不足惜虐译,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吴趴。 院中可真熱鬧漆诽,春花似錦、人聲如沸锣枝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惊橱。三九已至蚪腐,卻和暖如春箭昵,著一層夾襖步出監(jiān)牢的瞬間税朴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留正林,地道東北人泡一。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像觅廓,于是被迫代替她去往敵國(guó)和親鼻忠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容