在AsyncStorage中保存一组Items

问题描述 投票:1回答:2

如何在react-native中使用AsyncStorage保存一个Items数组?因此,每次在列表中添加其他联系人时,它都会不断添加而不是重写

码:

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

            }catch(error) {
                alert(error)
            }
        }
javascript arrays react-native items asyncstorage
2个回答
7
投票

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

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

1
投票

获取并将记录设置为数组,然后保存到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)
    }
};
© www.soinside.com 2019 - 2024. All rights reserved.