React Native 利用通知返回上一頁進行傳值刷新頁面

1.首先利用導航做一個由首頁跳轉(zhuǎn)到詳情頁效果,在首頁引入DeviceEventEmitter通知組件叽奥,然后在首頁的componentDidMount方法注冊一個通知,想要接收發(fā)送者發(fā)了的通知必須先注冊通知蔬螟。 實現(xiàn)代碼如下,在首頁注冊通知

import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  ListView,
  TouchableOpacity,
  DeviceEventEmitter,//引入監(jiān)聽事件
} from 'react-native';
import {Navigator} from  'react-native-deprecated-custom-components';
import Detail from './Detail';

export default class SectionDemo extends Component {
  render() {
    let defauleName='Main';
    let defauleComponent=Main;
    return (
      <Navigator initialRoute={{name:defauleName,component:defauleComponent}}
      configureScene={(route) =>{
        var conf = Navigator.SceneConfigs.PushFromRight;
        // 禁止滑動返滬上一頁
        conf.gestures = null;
        return conf;
      }}
      renderScene={(route,navigator) =>{
          let Component = route.component;
          return <Component {...route.params} navigator={navigator}/>
      }}
      />
    );
  }
}
class Main extends Component{
  constructor(props) {
    super(props);
 //初始按鈕的顏色和文字 
    this.state = {
        color:'orange',
        text:'進到詳情頁'
    };
  }
  //注冊通知
  componentDidMount(){
        DeviceEventEmitter.addListener('ChangeUI',(dic)=>{
            //接收到詳情頁發(fā)送的通知,刷新首頁的數(shù)據(jù)盗蟆,改變按鈕顏色和文字,刷新UI
            this.setState({
                text:dic.text,
                color:dic.color
            });
       });
  }
  //頁面跳轉(zhuǎn)
  detail(){
    // alert(name);
    this.props.navigator.push({
      component:Detail,
      params:{

      },
    });
  }
  
  render() {
    return (
      <View style={styles.container}>
        <TouchableOpacity style={{height:40,
                                  width:100,
                                  backgroundColor:this.state.color,
                                  justifyContent:'center',
                                  alignItems:'center'}} 
                          onPress={()=>{this.detail()}}>
            <Text>{this.state.text}</Text>
        </TouchableOpacity>
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#F5FCFF',
    alignItems: 'center',
    justifyContent: 'center',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

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

2.看一下詳情頁舒裤,詳情頁也是要引入DeviceEventEmitter通知組件利用React Native的生命周期方法喳资,在頁面將要離開的時候發(fā)送一個通知方法給首頁,這樣首頁接收到通知腾供,就會執(zhí)行刷新頁面的操作了仆邓。代碼實現(xiàn)如下

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

export default class Detail extends Component {
  //頁面將要離開的是時候發(fā)送通知
  componentWillUnmount(){
    DeviceEventEmitter.emit('ChangeUI', {color:'red',text:'通知'});
  }
  //返回首頁
  back=()=>{
    this.props.navigator.pop();
  }
  render() {
    return (
     <View style={styles.container}>
       <TouchableOpacity style={{width:100,height:40,backgroundColor:'red'}}
                         onPress={()=>{this.back()}}>
           <Text>返回</Text>
       </TouchableOpacity>
     </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  
});

實現(xiàn)效果如圖,返回的時候首頁的按鈕和文字改變了

QQ20170811-091115-HD.gif
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伴鳖,一起剝皮案震驚了整個濱河市节值,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榜聂,老刑警劉巖察署,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異峻汉,居然都是意外死亡,警方通過查閱死者的電腦和手機脐往,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門休吠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人业簿,你說我怎么就攤上這事瘤礁。” “怎么了梅尤?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵柜思,是天一觀的道長。 經(jīng)常有香客問我巷燥,道長赡盘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任缰揪,我火速辦了婚禮陨享,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钝腺。我一直安慰自己抛姑,他們只是感情好,可當我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布艳狐。 她就那樣靜靜地躺著定硝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪毫目。 梳的紋絲不亂的頭發(fā)上蔬啡,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天诲侮,我揣著相機與錄音,去河邊找鬼星爪。 笑死浆西,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的顽腾。 我是一名探鬼主播近零,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抄肖!你這毒婦竟也來了久信?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤漓摩,失蹤者是張志新(化名)和其女友劉穎裙士,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體管毙,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡腿椎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了夭咬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啃炸。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卓舵,靈堂內(nèi)的尸體忽然破棺而出南用,到底是詐尸還是另有隱情,我是刑警寧澤掏湾,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布裹虫,位于F島的核電站,受9級特大地震影響融击,放射性物質(zhì)發(fā)生泄漏筑公。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一尊浪、第九天 我趴在偏房一處隱蔽的房頂上張望十酣。 院中可真熱鬧,春花似錦际长、人聲如沸耸采。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虾宇。三九已至,卻和暖如春如绸,著一層夾襖步出監(jiān)牢的瞬間嘱朽,已是汗流浹背旭贬。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搪泳,地道東北人稀轨。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像岸军,于是被迫代替她去往敵國和親奋刽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,500評論 2 348

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,769評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理艰赞,服務發(fā)現(xiàn)佣谐,斷路器,智...
    卡卡羅2017閱讀 134,632評論 18 139
  • 一方妖、在基層要耐得住 不管你能力有多么強狭魂、不管你人品有多好,你畢竟是一個新人党觅,你上面有領導雌澄、長輩級同事,在他們面...
    OliviaSong閱讀 955評論 4 9
  • 你跟多少個人說過“愛”杯瞻? 你又將多少個人擁入懷中掷伙? 多少次屏幕前的“晚安” 最後能變成你入睡前的耳語 十...
    KrosK閱讀 171評論 0 0
  • 目標:尋找100個意見領袖(廣東周邊),使其試用我們產(chǎn)品又兵; 1.軟文推廣;高質(zhì)量的文章卒废,每周3~4篇沛厨;引流至公眾號...
    人子青閱讀 302評論 0 0