【问题标题】:How to display all the items from Async Storage in react Native如何在 React Native 中显示来自异步存储的所有项目
【发布时间】:2021-05-06 07:15:18
【问题描述】:

我想显示所有项目,例如如果我存储了 5 个项目,则显示 5 个元素以及项目中的相应信息。

我也想添加/删除项目。

我用过这个

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 一起使用,那么它就会变成无限循环

【问题讨论】:

    标签: react-native async-await asyncstorage


    【解决方案1】:

    您是否尝试过使用 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)
    

    【讨论】:

    • 是的,但在那之后,它只工作一次,当我向它添加一个新项目时,它就不起作用了。
    • 你忘了提到你必须添加/删除项目。可能最干净的方法应该是从父组件传递键作为道具
    • 是的,我编辑了它,我将添加我的代码,以便我真正遇到问题变得容易。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2020-11-06
    • 2021-02-18
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多