如何在 React Native 中显示异步存储中的所有项目
How to display all the items from Async Storage in react Native
我想显示所有项目,比如如果我存储了 5 个项目,则显示 5 个元素以及项目中的相应信息。
我也想 add/remove 项。
我用过这个
getAllKeys = async () => {
let keys = []
try {
keys = await AsyncStorage.getAllKeys()
} catch(e) {
// read key error
}
console.log(keys)
// example console.log result:
// ['@MyApp_user', '@MyApp_key']
}
但是出现错误。
如果我将状态与 useEffect 一起使用,那么它将变成一个无限循环
你试过使用useEffect的第二个参数吗?
它允许您定义要观察的变量数组,以便重新运行效果。
如果您使用空数组,则意味着仅在第一次渲染时调用该效果。
const [keys, setKeys] = useState([])
useEffect(() => {
AsyncStorage.getAllKeys()
.then(setKeys)
.catch(e => {}//handle error)
}, [] //no variable in watch so it get fired only the first time)
我想显示所有项目,比如如果我存储了 5 个项目,则显示 5 个元素以及项目中的相应信息。
我也想 add/remove 项。
我用过这个
getAllKeys = async () => {
let keys = []
try {
keys = await AsyncStorage.getAllKeys()
} catch(e) {
// read key error
}
console.log(keys)
// example console.log result:
// ['@MyApp_user', '@MyApp_key']
}
但是出现错误。
如果我将状态与 useEffect 一起使用,那么它将变成一个无限循环
你试过使用useEffect的第二个参数吗?
它允许您定义要观察的变量数组,以便重新运行效果。
如果您使用空数组,则意味着仅在第一次渲染时调用该效果。
const [keys, setKeys] = useState([])
useEffect(() => {
AsyncStorage.getAllKeys()
.then(setKeys)
.catch(e => {}//handle error)
}, [] //no variable in watch so it get fired only the first time)