【问题标题】:AsyncStorage not working on release but working on debug (React Native)AsyncStorage 在发布时不工作但在调试(React Native)
【发布时间】:2021-09-23 00:15:58
【问题描述】:
 "@react-native-async-storage/async-storage": "1.15.5",
 "react": "17.0.1",
 "react-native": "0.64.2",

这是我使用异步的方式

fetch('',{
... //codes here
.then((response) => response.json())
      .then((responseJson) => {

     AsyncStorage.setItem('user_token', JSON.stringify(responseJson.token));
     AsyncStorage.setItem('user_id', JSON.stringify(responseJson.data));
     AsyncStorage.setItem('login_type', 'LocalLogin');
     
   });
});

然后这就是我获取异步存储的方式

const [getData, setGetData] = useState();

const initializeData = async() => {
    const userToken = await AsyncStorage.getItem('user_id');
    if(userToken)
    {
      setGetData(JSON.parse(userToken));
    }
  }

  useEffect(() => {
    initializeData();
  },[]);

useEffect(() => {
    getUserData();
,[navigation,isFocused]);

const getUserData = async() => {
 var formBody = JSON.stringify({email:`${getData.email}`});
 fetch('',{ ... //more codes here
}

我应该从我的 API 获取更新的数据,但似乎 getData 为空,而且它应该可以工作,因为我正在重新渲染组件。 Fetch 工作正常,因为我可以登录。我遇到的主要问题是AsyncStorage。有人遇到过这种问题吗?

【问题讨论】:

    标签: android react-native react-native-android asyncstorage react-android


    【解决方案1】:

    您有一个竞态条件,其中 initializeData 和 getUserData 都将在挂载时调用,而 getData 尚未设置。

    你可以这样解决比赛。

    useEffect(() => {
        if (getData) getUserData();
    ,[navigation,isFocused,getData]);
    

    【讨论】:

    • 还是不行。我尝试在 logcat adb 上调试并确认它不起作用
    • 你仍然需要这个修复
    【解决方案2】:

    我在我的 adb logcat 上看到它不能存储太多数据

    所以我所做的就是切碎我的数据并仅存储所需的数据。我就是这么做的。

    【讨论】:

      【解决方案3】:

      AsyncStorage大小默认设置为6MB,但是当它带有大量数据时,您必须增加大小。

      如果你想存储所有数据,你可以更新下面看到的属性。

      文件:android/gradle.properties

      AsyncStorage_db_size_in_MB=10
      

      AsyncStorage_db_size_in_MB=15
      

      取决于您要存储多少数据。

      【讨论】:

      • 但是不建议使用异步存储来存储太多数据。
      • 所以当你有很多数据要存储的时候,你可以做些什么来解决?,我认为你可以增加存储的大小
      • 你需要做的是要么使用数据库,要么砍掉数据
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多