I have a main class
class test extends Component
and I created a component to render a login page
var PageLogin = React.createClass({
So in the render
method of test
I can just do
return (
<View>
<PageLogin></PageLogin>
</View>
)
This login class uses a form which triggers the login
method of the PageLogin
component. The login
method uses a simple fetch
to post the data to a server.
login: function (values) {
AsyncStorage.getItem('@test:app_access_token', (error, token) => {
fetch(Config.BASE_URI + Config.LOGIN_URI, {//omitted})
.then((response) => response.json())
.then((responseData) => {
return responseData;
})
.done();
});
},
So from the form submit button I do
var response = this.login(values);
but when I debug response
it is null
your login request trigger async request so you can not handle the response with var response = this.login(values);
try to change your code to:
login: function (values) {
return new Promise((resolve) => {
AsyncStorage.getItem('@test:app_access_token', (error, token) => {
fetch(Config.BASE_URI + Config.LOGIN_URI, {//omitted})
.then((response) => response.json())
.then((responseData) => {
resolve(responseData);
});
});
});
},
this.login(values).then((res)=>{
var response = res;
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加