在 AsyncStorage 中保存一组项目

Save an array of Items in AsyncStorage

如何在 react-native 中使用 AsyncStorage 保存项目数组?因此,每次您将另一个联系人添加到您的列表时,它都会不断添加而不是重写

代码:

saveContacts = ()=> {
    try {
        let con = {
            roomId: this.state.roomId,
            nickname: this.state.nickname,
        }
        AsyncStorage.setItem('contacts', JSON.stringify(con));
    }catch(error) {
        alert(error)
    }
}

您可以检索联系人并将新联系人连接到列表中,然后将其重新存储。只需确保最初将其设置为空数组即可:

AsyncStorage.getItem('contacts')
  .then((contacts) => {
    const c = contacts ? JSON.parse(contacts) : [];
    c.push(con);
    AsyncStorage.setItem('contacts', JSON.stringify(c));
  });

获取记录并将其设置到数组中,然后保存到 AsyncStorage:

saveContacts = async () => {
    try {
        let con = {
            roomId: this.state.roomId,
            nickname: this.state.nickname,
        }
        const contacts = await AsyncStorage.getItem('contacts') || '[]';
        contacts = JSON.parse(contacts);
        contacts.push(con);
        AsyncStorage.setItem('contacts', JSON.stringify(contacts)).then(() => {
            console.log('Contacts updated.')
        });
    } catch(error) {
        alert(error)
    }
};