react-native - AsyncStorage.getItem("item") 返回字符串“[object Object]”
问题描述
我正在使用AsyncStorage
以在我的应用程序中保存“会话”,我在这段代码中这样做:
if (signInResult) {
if (signInResult.userId && signInResult.accessToken) {
await AsyncStorage.setItem("auth", signInResult);
}
this.props.navigation.navigate("home");
}
但是当我试图用 取回数据时AsyncStorage.getItem("auth")
,它只是检索字符串[object Object]
我调整了代码 a 但在控制台中编写了一些东西,这样我就可以密切关注数据,所以这是我到目前为止遇到的情况:
因此,我在将其“通过”之前和之后记录了相同的数据AsyncStorage
。首先,我们看到该对象仍然是一个非常多的 javascript 对象,而第二个显然只是类型的名称。我不确定这里发生了什么,但我很确定这应该有效。我实际上在另一个应用程序中使用了相同的方法,我没有这个问题。
提前致谢。
解决方案
您需要JSON.stringify
&JSON.parse
同时从 AsyncStorage 保存和获取数据。
if (signInResult) {
if (signInResult.userId && signInResult.accessToken) {
await AsyncStorage.setItem("auth", JSON.stringify(signInResult));
}
AsyncStorage.getItem("auth").((item) => {
JSON.parse(item);
});
this.props.navigation.navigate("home");
}
推荐阅读
- node.js - Dockerfile 中用于 Node.js 项目的 Python 库
- windows - SSL 认证异常 - 错误:0909006C:PEM 例程:get_name:no start line
- node.js - 如何模拟嵌套请求?
- sql - 用另一个表中的行值更新表的动态列
- vue.js - Vue keep-alive 嵌套组件
- spring-boot - 如何在使用带有自签名证书的 Spring RestTemplate 时修复“SSLHandshakeException”
- excel - 点击超链接后下载文件
- csv - 从 .csv 写入不同的表
- tensorflow - tf.keras.layers.LSTM 参数的含义
- python - 如何同时启动 Miniconda 和激活环境?