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
Post a Comment