我是原生react 的初学者,我正在try 通过axios API GET请求从MySQL数据库中获取用户信息.

登录后,我将邮箱地址存储在AsyncStorage中,然后希望使用AsyncStorage中的该邮箱地址作为参数或参数来获取用户详细信息.

我编写了一段代码,将setState的初始状态设置为‘na’.请告诉我如何将AsyncStorage中的邮箱地址作为参数或参数进行传递.

这是我的代码.

// to load email address
  const [SessionEmail, setSessionEmail] = useState('na');

// to load users info
  const [users, setUsers] = useState([]);
  useFocusEffect(
    React.useCallback(() => {   
      getUsername();
      getUsersInfoFromAPI();
    }, [])
  );
// to get the session username from localstorage
  const getUsername = async () => {
    try {
      const username = await AsyncStorage.getItem('Username')
      if (username !== null) {
        setSessionEmail(username);
      }
    } catch (e) {
      console.log(e);
    }
  }

 // API Calling user details
  const getUsersInfoFromAPI = async () => {
    await axios.get(`https://myapi.co.in/api/user/?email=${SessionEmail}`)
      .then(response => {
        setUser(response.data);
      })
      .catch(error => {
        console.log(error);
      });
  }

在页面呈现后,我从Metro加载页面,我可以看到参数已经发送到服务器.

推荐答案

以这种方式更新您的代码:

useFocusEffect(
    React.useCallback(() => {   
      getUsername();
    }, [])
  );

不是将您的邮箱保存到状态,而是直接将其发送到Function,但如果您正出于其他原因使用它,您仍然可以保存它,但在使用UserName参数从AsyncStorage获取用户名时调用Function,如下所示.

// to get the session username from localstorage
  const getUsername = async () => {
    try {
      const username = await AsyncStorage.getItem('Username')
      if (username !== null) {
        getUsersInfoFromAPI(username);
      }
    } catch (e) {
      console.log(e);
    }
  }
// API Calling user details
  const getUsersInfoFromAPI = async (email) => {
    await axios.get(`https://myapi.co.in/api/user/?email=${email}`)
      .then(response => {
        setUser(response.data);
      })
      .catch(error => {
        console.log(error);
      });
  }

Mysql相关问答推荐

是否有一种方法可以在mysql中设置一列,使其自动成为该行的行号的值?

—符号在哪里条件""

MySQL将JSON值从对象类型更改为数组

MySQL::JSON列的添加使SELECT查询非性能(当需要临时表时)

为什么MySQL不同版本的值会变化?

SQL 查询仅当成员共享确切值时才 Select 成员对

使用来自另一个表 mysql 的值将新行插入到表中

如何在 SQL 中计算留存曲线?

在 Codeigniter MySQL 中从另一个数据库获取数据

多个驱动器上的 MYSQL 数据

按 SQL 删除分组前的重复项

Laravel 查询构建器 where() 用于何时产品必须有多个标签(使用 product_tags 数据透视表多对多)

查询以查找可用时隙

如何在sql中挑出某些名称

在连接条件上使用 IS NULL 或 IS NOT NULL - 理论问题

Drupal 的默认密码加密方法是什么?

#1146 - 表 'phpmyadmin.pma_recent' 不存在

使用 PHP 和 MySQL 存储和显示 unicode 字符串 (हिन्दी)

MySQL 更新连接表

MySQL连接查询使用like?