Я пытаюсь отправить извлеченные данные из моего действия в save_user_reducer, но, похоже, это не работает.
В моем журнале консоли я вижу, что идентификатор был получен, но данные не передаются с помощью команды отправки.
Мои действия аутентификации:
import {AsyncStorage} from 'react-native';
import {Facebook} from 'expo';
import{
FACEBOOK_LOGIN_SUCCESS,
FACEBOOK_LOGIN_FAIL,
TOKEN_RECEIVED,
SAVE_USER
} from './types';
export const tryGetFacebookToken = () => async dispatch => {
let token = await AsyncStorage.getItem('fb_token');
let response = await fetch(`https://graph.facebook.com/me?access_token=${token}&fields=id,name,picture`);
const { id, picture, name } = await response.json();
console.log("try facebook get", id);
if (token) {
dispatch({ type: TOKEN_RECEIVED, payload: token});
dispatch({ type: SAVE_USER, payload: {id:id});
getUserInfo(token, dispatch);
console.log('got a token');
}
}
async function getUserInfo(token, dispatch) {
let response = await fetch(`https://graph.facebook.com/me?access_token=${token}&fields=id,name,picture`);
const { id, picture, name } = await response.json();
//console.log('picture' + JSON.stringify(await response.json().picture))
console.log('the response is id: ' + id + " name " + name);
return dispatch({ type: SAVE_USER, payload: {id: id} })
}
и save_user_reducer:
import {SAVE_USER} from '../actions/types';
const INITIAL_STATE ={
id: '',
name: ''
}; //empty initial state
export default (state=INITIAL_STATE, action) =>{
console.log("save reducer called" + action.payload);
switch(action.type){
case SAVE_USER:
return { ...state, [action.payload.prop]: action.payload.value};
default:
return state;
}
};