react native - this.props.navigation loses value when called in my POST method -


inside register page have method gets called , register's user. when try navigate login page after registering user cannot read property 'navigation' of undefined. code

sendajax = () => {   //this.props.navigation returns value , can navigate 'login'    if(!regex.test(this.state.email)){   }else if(this.state.password != this.state.confirmpwd){     alert.alert("the passwords don't match!");   }else{     const fn = encodeuricomponent(this.state.firstname);     ...     const hashdigest = sha256(p);     const requestbody = `firstname=${fn}...      //post     fetch("http://localhost:3000/users", {         method: "post",         mode: "cors",         headers: {             "content-type": "application/x-www-form-urlencoded"         },         body: requestbody     }).then(function (res, next) {         console.log("fetch request ", json.stringify(res.ok));         if(res.ok){             res.json().then(function (json) {                 if(json.registerstate){                     alert.alert('register success, please login');                     //cannot read property 'navigation' of undefined                     this.props.navigation.navigate('login')                 }             });         }     })     .then((res) => {       alert.alert("then working");     })     ....   } } 

i'm not sure why this.props.navigation.navigate becomes undefined halfway down method, yet @ beginning call it. great, thanks!

this issue "this" changing you. using arrow functions keeps "outer this" in scope, instead of "this" changing because of being in new function.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -