我正在异步存储中保存一个值本机响应。但是当我尝试获取值时,它返回null。以下是我的代码。任何帮助,将不胜感激。在控制台中打印的值很好,但异步存储返回null。
var userID = responseJson[0].UserId;
console.log("User id"+userID +userID.toString())
AsyncStorage.setItem("UserId",userID.toString());
AsyncStorage.getItem("UserId", (UserId) => {
console.log("get user details"+UserId )
});
答案 0 :(得分:0)
据我所知,它是Async方法,所以在保存之后你就无法正确使用它。 你必须在回调函数中得到它。请参阅以下代码段:
AsyncStorage.setItem('UID123', JSON.stringify(UID123_object), () => {
AsyncStorage.mergeItem('UID123', JSON.stringify(UID123_delta), () => {
AsyncStorage.getItem('UID123', (err, result) => {
console.log(result);
});
});
});
在您的示例中,它将是:
var userID = responseJson[0].UserId;
console.log("User id"+userID +userID.toString())
AsyncStorage.setItem("UserId",userID.toString(), () => {
AsyncStorage.getItem("UserId", (UserId) => {
console.log("get user details"+UserId )}
});
答案 1 :(得分:0)
Asyncstorage中的数据应以字符串格式存储。你可以这样做:
var userID = responseJson[0].UserId;
console.log("User id"+userID +userID.toString())
AsyncStorage.setItem("UserId",JSON.stringify(userID));
AsyncStorage.getItem("UserId", (err, result) => {
console.log("get user details"+ result)}
请注意,结果(数据)仅为字符串格式(无论其是变量还是对象)。要将其用作对象,您需要将其解析为对象。 你可以使用 JSON.parse(结果)。
来做到这一点