如何使用AsyncStorage存储和检索多个数据

时间:2019-05-03 07:14:49

标签: javascript react-native

我是ReactNative的新手,但是我对React有一些经验。

在这里,我试图在AsyncStorage中存储多个数据并尝试检索它们,但是我只能存储单个数据

代码:

  state = {
    data: [],
    item: ""
  };

  storeData = async () => {
    await AsyncStorage.setItem("@storage_Key", JSON.stringify(this.state.item));
    this.getData();
  };

  componentDidMount() {
    this.getData();
  }

  getData = async () => {
    try {
      const value = await AsyncStorage.getItem("@storage_Key");
      let { data, item } = this.state;
      data.push(value);
      this.setState({
        data: data,
        item: ""
      });
    } catch (e) {
      // error reading value
    }
  };

任何帮助或指导将不胜感激

2 个答案:

答案 0 :(得分:0)

仅在分别使用setItemgetItem时设置和检索一项。

如果要存储多个项目,可以使用multiSet

AsyncStorage.multiSet(['key1', 'value1'], ['key2', 'value2']);

如果要检索多个项目,可以使用multiGet

AsyncStorage.multiGet(['key1', 'key2'], (err, items) => {
  console.log({ items });
});

答案 1 :(得分:0)

我在使用

方面经验丰富

react-native-storage

根据我从您的代码中看到的内容,您正在保存状态项 当您从存储中检索数据时,您会将其放入数据中,对吗?

我建议您更改数据排列方式

您使用let {data} = this.state;

如果您知道无法使用=设置状态数据 我建议您创建一个新变量->让数据存储,并将其与数据=值一起存储,然后可以设置状态({数据:数据})