【发布时间】:2021-07-04 19:50:04
【问题描述】:
我正在构建一个应用程序,用户在登录时通过输入 URL 连接到服务器。
每个服务器都提供一个 API,我无法在创建 Axios 客户端实例时硬编码 BaseURL 的值。我不知何故需要全局存储 URL 并根据登录表单中的用户输入进行设置。
所以我想知道什么是正确的方法。我真的不确定动态存储创建 API 连接时可以访问的值的最佳方法是什么。欢迎任何想法和最佳实践建议。
这里是创建 API 连接的代码:client.js
import { create } from 'apisauce';
const api = create({
baseURL: "BASE_URL_FROM_USER_INPUT" + "server/odata/"
});
export default api;
这就是我使用 API 的方式:users.js
import api from './client';
const getUsers = () => api.get("/users");
export default {
getUsers
}
这就是我获取数据的方式:
import React, { useState, useEffect } from "react";
import usersApi from '../api/users';
const TestScreenAuthenticated = ({navigation}) => {
const [users, setUsers] = useState([]);
useEffect(() => {
loadUsers();
});
const loadUsers = async () => {
const response = await usersApi.getUsers();
setUsers(response);
}
...
};
export default TestScreenAuthenticated;
【问题讨论】:
标签: reactjs react-native axios