AsyncStorage 在 React-Native 中有奇怪的字符
AsyncStorage has weird characters in React-Native
我正在尝试使用 AsyncStorage 存储我的用户授权密钥,但每当我这样做时,我都会收到奇怪的字符。这是我的相关代码:
async function retrieveItem(key) {
try {
let retrievedItem = await AsyncStorage.getItem(key).then(value => retrieveItem = value);
return retrievedItem;
} catch (error) {
console.log(error.message);
}
return
}
let test = retrieveItem('@authentication')
class AppNavigation extends Component {
render() {
console.log(test)
...
这是我测试得到的输出。我想要的项目在 _55
下,我可以通过 console.log(test._55)
获得它。我只是想确保我没有正确执行此操作。对于异步存储,密钥总是 _55 吗?
{"_40": 0, "_55": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZTk1ODM3NDJlZDI1YjAxMWM4MWFiNWEiLCJpYXQiOjE1ODY4NTY4MjB9.yK0WYuZj7_2Nih7phisi5rmm0y7gF__PMRMEAafIkFk", "_65": 1, "_72": null}
你应该注意使用 async/await 和 .then 一起,两者做同样的事情。
试试这个代码:
async function retrieveItem(key) {
try {
let retrievedItem = await AsyncStorage.getItem(key);
return retrievedItem;
} catch (error) {
console.log(error.message);
}
return
}
let test = await retrieveItem('@authentication')
class AppNavigation extends Component {
render() {
console.log(test)
编辑:你得到的对象是一个承诺,你可以通过执行 async/await 语法或调用 .then(...)
来获取它的值
它实际上是 Promise 指针,您必须通过 await
来解决 Promise
在类
中使用它
async componentDidMount() {
let test =await retrieveItem('@authentication');
console.log(test);
}
在钩子中使用它
useEffect(async () => {
let test =await retrieveItem('@authentication');
console.log(test);
});
我正在尝试使用 AsyncStorage 存储我的用户授权密钥,但每当我这样做时,我都会收到奇怪的字符。这是我的相关代码:
async function retrieveItem(key) {
try {
let retrievedItem = await AsyncStorage.getItem(key).then(value => retrieveItem = value);
return retrievedItem;
} catch (error) {
console.log(error.message);
}
return
}
let test = retrieveItem('@authentication')
class AppNavigation extends Component {
render() {
console.log(test)
...
这是我测试得到的输出。我想要的项目在 _55
下,我可以通过 console.log(test._55)
获得它。我只是想确保我没有正确执行此操作。对于异步存储,密钥总是 _55 吗?
{"_40": 0, "_55": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZTk1ODM3NDJlZDI1YjAxMWM4MWFiNWEiLCJpYXQiOjE1ODY4NTY4MjB9.yK0WYuZj7_2Nih7phisi5rmm0y7gF__PMRMEAafIkFk", "_65": 1, "_72": null}
你应该注意使用 async/await 和 .then 一起,两者做同样的事情。 试试这个代码:
async function retrieveItem(key) {
try {
let retrievedItem = await AsyncStorage.getItem(key);
return retrievedItem;
} catch (error) {
console.log(error.message);
}
return
}
let test = await retrieveItem('@authentication')
class AppNavigation extends Component {
render() {
console.log(test)
编辑:你得到的对象是一个承诺,你可以通过执行 async/await 语法或调用 .then(...)
来获取它的值它实际上是 Promise 指针,您必须通过 await
来解决 Promise在类
中使用它async componentDidMount() {
let test =await retrieveItem('@authentication');
console.log(test);
}
在钩子中使用它
useEffect(async () => {
let test =await retrieveItem('@authentication');
console.log(test);
});