react-navigation學(xué)習(xí)(一)跳轉(zhuǎn)和傳值問(wèn)題

先來(lái)看一下示意圖

chuan.gif

先來(lái)安利一下官方文檔

還有不錯(cuò)的一個(gè)詳解博客

安裝步驟或者有什么屬性之類的链快,看一下這個(gè)博客和官方文檔,基本差不多了,現(xiàn)在我們來(lái)將跳轉(zhuǎn)和傳值的問(wèn)題拧簸。

跳轉(zhuǎn)

import { StackNavigator } from 'react-navigation';
導(dǎo)入必要的包的是關(guān)鍵。
StackNavigator是用于頁(yè)面跳轉(zhuǎn)的東西男窟。
其次需要導(dǎo)入navigate盆赤。

利用navigate實(shí)現(xiàn)跳轉(zhuǎn),前面是 ‘xxx’ 你要跳轉(zhuǎn)的名字歉眷,后面是你要傳遞的參數(shù)牺六。

路由:明確跳轉(zhuǎn)的方向。

代碼

 const { navigate } = this.props.navigation;
        <Button
          onPress={() => navigate('Chat', { user: 'Lucy' })}
          title="Chat with Lucy"
        />
        
 const SimpleApp = StackNavigator({
    Home: { screen: HomeScreen },
    Chat: { screen: ChatScreen },
    Dsome:{screen:Dsome},
});

頁(yè)面效果參考上面的GIF

傳值

代碼中汗捡,我們已經(jīng)向Chat傳遞了user的參數(shù)淑际,那么Chat這個(gè)頁(yè)面該如何接受參數(shù)呢?

class ChatScreen extends React.Component {
  static navigationOptions = ({ navigation }) => ({
    title: `Chat with ${navigation.state.params.user}`,
  });
  render() {
    const { params } = this.props.navigation.state;
    return (
      <View>
        <Text>Chat with {params.user}</Text>
      
      </View>
    );
  }
}     

在navigationOptions 中可以通過(guò)接受一個(gè) navigation 之后通過(guò)navigation.state.params.user來(lái)接受參數(shù)。

而在Render里渲染的時(shí)候春缕,通過(guò)

const { params } = this.props.navigation.state;

來(lái)得到params盗胀。之后直接params.user來(lái)接受參數(shù)。

回調(diào)傳值

在實(shí)際場(chǎng)景中锄贼,第一個(gè)頁(yè)面會(huì)向第二個(gè)頁(yè)面?zhèn)鬟f值票灰,第二個(gè)頁(yè)面會(huì)處理這樣的值,之后將值傳遞給第一個(gè)頁(yè)面宅荤。屑迂。。

這就用到了回調(diào)傳值膘侮。
直接帖代碼

    <Button 
      onPress={()=>navigate('Dsome',{
        boom:this.state.boom,
          callback: (data)=>{
                this.setState({
                  boom:data,
                })
                 }
      }
       )}
      title="Dsome"
    />

這里我們通過(guò)Button傳值給下一個(gè)頁(yè)面屈糊。。這里琼了,傳遞的值有boom逻锐,還有一個(gè)回調(diào)函數(shù)callback。如果得到的callback雕薪,我們就直接傳給boom這個(gè)state昧诱。

第二個(gè)頁(yè)面的處理也很簡(jiǎn)單。
定義一個(gè)goback方法所袁,之后盏档,const {navigate,goBack,state} = this.props.navigation;這個(gè)是關(guān)鍵。 在第二個(gè)頁(yè)面,在goBack之前,將上個(gè)頁(yè)面的方法取到,并回傳參數(shù),這樣回傳的參數(shù)會(huì)重走render方法

 goback(){
    const {navigate,goBack,state} = this.props.navigation;
    state.params.callback(this.state.boom);
    this.props.navigation.goBack();  
}

這樣就可以實(shí)現(xiàn)一開(kāi)始的效果圖燥爷,點(diǎn)擊第二個(gè)頁(yè)面蜈亩,回到第一個(gè)頁(yè)面實(shí)現(xiàn)boom的值的改變。

寫(xiě)的如果有不對(duì)的地方前翎,請(qǐng)大神指教

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末稚配,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子港华,更是在濱河造成了極大的恐慌道川,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件立宜,死亡現(xiàn)場(chǎng)離奇詭異冒萄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)橙数,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)尊流,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人灯帮,你說(shuō)我怎么就攤上這事奠旺≈├剑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵响疚,是天一觀的道長(zhǎng)鄙信。 經(jīng)常有香客問(wèn)我,道長(zhǎng)忿晕,這世上最難降的妖魔是什么装诡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮践盼,結(jié)果婚禮上鸦采,老公的妹妹穿的比我還像新娘。我一直安慰自己咕幻,他們只是感情好渔伯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著肄程,像睡著了一般锣吼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蓝厌,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天玄叠,我揣著相機(jī)與錄音,去河邊找鬼拓提。 笑死读恃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的代态。 我是一名探鬼主播寺惫,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹦疑!你這毒婦竟也來(lái)了西雀?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤必尼,失蹤者是張志新(化名)和其女友劉穎蒋搜,沒(méi)想到半個(gè)月后篡撵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體判莉,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年育谬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了券盅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膛檀,死狀恐怖锰镀,靈堂內(nèi)的尸體忽然破棺而出娘侍,到底是詐尸還是另有隱情,我是刑警寧澤泳炉,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布憾筏,位于F島的核電站,受9級(jí)特大地震影響花鹅,放射性物質(zhì)發(fā)生泄漏氧腰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一刨肃、第九天 我趴在偏房一處隱蔽的房頂上張望古拴。 院中可真熱鬧,春花似錦真友、人聲如沸黄痪。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桅打。三九已至,卻和暖如春轻纪,著一層夾襖步出監(jiān)牢的瞬間油额,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工刻帚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留潦嘶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓崇众,卻偏偏與公主長(zhǎng)得像掂僵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子顷歌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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