mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 07:08:01 +00:00
Add Add Item To An Array Of References In Sanity as a JavaScript TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
|||||||
|
|
||||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||||
|
|
||||||
_1346 TILs and counting..._
|
_1347 TILs and counting..._
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -402,6 +402,7 @@ _1346 TILs and counting..._
|
|||||||
### JavaScript
|
### JavaScript
|
||||||
|
|
||||||
- [Accessing Arguments To A Function](javascript/accessing-arguments-to-a-function.md)
|
- [Accessing Arguments To A Function](javascript/accessing-arguments-to-a-function.md)
|
||||||
|
- [Add Item To An Array Of References In Sanity](javascript/add-item-to-an-array-of-references-in-sanity.md)
|
||||||
- [Basic Date Formatting Without A Library](javascript/basic-date-formatting-without-a-library.md)
|
- [Basic Date Formatting Without A Library](javascript/basic-date-formatting-without-a-library.md)
|
||||||
- [Character Codes from Keyboard Listeners](javascript/character-codes-from-keyboard-listeners.md)
|
- [Character Codes from Keyboard Listeners](javascript/character-codes-from-keyboard-listeners.md)
|
||||||
- [Check Classes On A DOM Element](javascript/check-classes-on-a-dom-element.md)
|
- [Check Classes On A DOM Element](javascript/check-classes-on-a-dom-element.md)
|
||||||
|
|||||||
28
javascript/add-item-to-an-array-of-references-in-sanity.md
Normal file
28
javascript/add-item-to-an-array-of-references-in-sanity.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Add Item To An Array Of References In Sanity
|
||||||
|
|
||||||
|
Let's say we have an existing record in our Sanity dataset. The schema for that
|
||||||
|
record allows for an array of references to another type of record. As part of
|
||||||
|
programmatically importing some data, we need to tie some records together by
|
||||||
|
adding to that array of references.
|
||||||
|
|
||||||
|
We've already set up our [Sanity client](https://www.sanity.io/docs/js-client)
|
||||||
|
(via the JavaScript SDK). We have an `_id` for the record we want to patch. We
|
||||||
|
have a `resourceId` for the resource that we want to _reference_ in the array.
|
||||||
|
|
||||||
|
Here is how we perform that `patch`:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
await sanityClient
|
||||||
|
.patch(_id)
|
||||||
|
.setIfMissing({resources: []})
|
||||||
|
.append('resources', [{_type: 'reference', _ref: resourceId}])
|
||||||
|
.commit({autoGenerateArrayKeys: true})
|
||||||
|
```
|
||||||
|
|
||||||
|
1. We give it the `_id` of the record we want to `patch`.
|
||||||
|
2. We set our array of `resources` to an empty array (`[]`) if it hasn't
|
||||||
|
already been set.
|
||||||
|
3. We `append` to the `resources` array with an array containing a single item,
|
||||||
|
a reference to our resource.
|
||||||
|
4. We `commit` the changes with the directive that Sanity should auto-generate
|
||||||
|
the `_key` value for any new array items.
|
||||||
Reference in New Issue
Block a user