如何在 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)