Updating
Use store.update()
and store.remove()
to update groups. The following operations are possible:
Using update()
:
replace the contents of a group
append new items to the end of a group
Using remove()
:
remove resource(s) from a group
Heads up: you can also delete an entire group using either
update()
orremove()
. This is covered in the next guide, Deleting Groups.
Replacing a Group
Replacing the contents of a group is straightforward: it looks the exact same as the call to create a group. In this example, we replace our selectedBooks
group with a different set of IDs:
const newSelectedBooks = store.getResources('books', [50, 24]);
store.update('groups.selectedBooks', newSelectedBooks);
Appending to a Group
Sometimes, you want to add a new value to a group without losing the old values. Once again, you use store.update()
for this purpose. One of the options to store.update()
is called concatGroups
. Pass it as true
, and the IDs will be added to the group.
store.update('groups.selectedBooks', [{ id: 2, resourceType: 'books' }], {
concatGroups: true,
});
Removing Resources From a Group
To remove resources from a group, you can use store.remove()
. The arguments are the same as adding a resource to the group.
store.remove('groups.selectedBooks', [
{ id: 50, resourceType: 'books' },
{ id: 24, resourceType: 'books' },
]);
Updating Multiple Groups
The previous examples used the path
argument to store.update()
to update a single group. But you can update as many groups across as many resources at a single time using these methods. In this example, we perform a bulk operation to replace several groups at the same time:
store.update({
groups: {
selectedBooks: [{ id: 2, resourceType: 'books' }],
favoriteBooks: [
{ id: 2, resourceType: 'books' },
{ id: 10, resourceType: 'books' },
{ id: 55, resourceType: 'books' },
],
favoriteMovies: [],
},
});
Tips
Resources that don't exist at the time that you add them to a group will be created for you. This is
useful if you need to create a resource and add it to a group at the same time.
Last updated