我想知道如何在React组件中没有的函数中使用Navigation。
在我的本机应用程序中,我有一个自定义提取功能。我将其用于所有API调用。
当我调用API时,如果用户的令牌不再有效,我希望将其重定向到连接页面。如何在此自定义提取功能中使用导航?请注意,该函数不在和不在React Component中
import { SubmissionError } from 'redux-form';
import { API_HOST, API_PATH } from './_entrypoint';
import {debuglog} from "../Components/config/_entrypoint";
import { AsyncStorage } from 'react-native';
const jsonLdMimeType = 'application/ld+json';
export default async function (url, options = {}) {
if ('undefined' === typeof options.headers) options.headers = new Headers();
if (null === options.headers.get('Accept')) options.headers.set('Accept', jsonLdMimeType);
if ('undefined' !== options.body && !(options.body instanceof FormData) && null === options.headers.get('Content-Type')) {
options.headers.set('Content-Type', jsonLdMimeType);
}
const link = url.includes(API_PATH) ? API_HOST + url : API_HOST + API_PATH + url;
var userToken = await AsyncStorage.getItem('userToken')
if(userToken){
var bearer = 'Bearer '+ userToken;
options.headers.set('Authorization', bearer)
return fetch(link, options).then(response => {
if (response.ok) return response;
return response
.json()
.then(json => {
{/* If the user token is not valid redirect to login page */}
const error = json['hydra:description'] || response.statusText;
if (!json.violations) throw Error(error);
let errors = {_error: error};
json.violations.map((violation) => errors[violation.propertyPath] = violation.message);
throw new SubmissionError(errors);
});
});
}
}