javascript - react-native how to refresh the page after facebook log and logout -


using react-native build first mobile app. using parse backend. 4 files, 3 screens: index.io.js , fb_login.js, user_page.js , theme_list.js

render: function() {     var render_screen;     if (global.is_signed_in()){          return <navigatorios             style={styles.container}             ref='nav'             initialroute={{                 title: 'tour champ',                 component: themelist,                 rightbuttontitle: tc.user.displayname.split(' ')[0],                 onrightbuttonpress: this._handleuserdatapress             }}/>;      }else{         render_screen = 'authenticate';     }      return (         <navigator             initialroute={{ id: render_screen}}             renderscene={this.renderscene}             configurescene={(route) => {                 if (route.sceneconfig) {                     return route.sceneconfig;                 }                  return navigator.sceneconfigs.floatfromright;             }}             onback={() => {                 if (route.index > 0) {                     navigator.pop();                 }             }}         />      ); }      renderscene(route, nav) {     console.log('in renderscene');     switch (route.id) {         case 'authenticate':             return <loginscreen navigator={nav} />;         case 'theme_list':             return <themelist navigator={nav} />;         default:             return  <view>error</view>;     } }, 

i can login , logout, thing have refresh manually home page / login page (after login/logout). question is: supposed after login fb_login.js method:

login_user(fb_user, password){ var = this; parse.user.login(fb_user.id, password).then(function(user) {   console.log('here in logged_in');   tc.user = user.attributes;   global.initializeuser(user);   //that.props.navigator.pop();   //that.props.navigator.replace({id: 'theme_list'});   that.setstate({result: 'logged_in', user: user.attributes}); }, function(msg) {   that.setstate({result: 'failure logged_id'}); }); 

},

ok , ended doing using event emitters post https://colinramsay.co.uk/2015/07/04/react-native-eventemitters.html

the code looks this: index.io.js

var eventemitter = require('eventemitter'); var subscribable = require('subscribable');  window.eventemitter = eventemitter; window.subscribable = subscribable;      var tourchampios = react.createclass({     mixins: [subscribable.mixin],    componentwillmount() {         this.eventemitter = new eventemitter();     },      componentdidmount() {          this.addlisteneron(this.eventemitter, 'logout_success',  this.logoutcallback);     },    logoutcallback(args){         p('logout callback');         this.setstate({             fake: args.somearg         });     }, 

fb_login.js

 login_user(fb_user, password){ var = this; parse.user.login(fb_user.id, password).then(function(user) {   tc.user = user.attributes;   global.initializeuser(user);   that.props.navigator.pop();   that.setstate({result: 'logged_in', user: user.attributes});   that.props.props.events.emit('fb_login_success', { somearg: 'argvalue' }); }, function(msg) {   that.setstate({result: 'failure logged_id'}); }); 

},


Comments