Unlock seamless workflows and faster delivery with our latest releases - Join the deep dive

Array schema types and options in Sanity.io discussed, including multi-select and custom object types.

3 replies
Last updated: Sep 22, 2021
Can someone clue me into what are all of the array schema type layout options? In the docs it refers to
'tags'
,
'grid'
, but in some of the example projects I can see that
'radio'
is also used. Are there other options like
'dropdown'
or
'multi-select'
or other common components? or is this something where you can pick from some of the sanity-ui components?
Sep 22, 2021, 9:20 PM
Hey User! I can see where the confusion comes from here. The tag and grid layouts work on an array of strings , whereas a list of strings can have the radio or drop down layouts.
If you're looking for a multi-select, the out of the box way would be to create an array with a predefined list, like this:

{
  title: 'Category Set',
  name: 'categorySet',
  type: 'array',
  of: [{type: 'string'}],
  options: {
    list: [
      {title: 'Building', value: 'building'},
      {title: 'Master plan', value: 'masterPlan'},
      {title: 'Infrastructure', value: 'infrastructure'},
      {title: 'Private Home', value: 'privateHome'}
    ]
  }
}
Sep 22, 2021, 9:39 PM
Thanks
user M
! This was super helpful! Can all of the options be defined somewhere in the documentation, and or maybe organized based on use-cases, like the one you provided?
Also what other
of:
options are there besides
type: 'string'
,
object
, and
type: 'block'
for lists, objects, and portable text respectively. Are there types of data that can be represented?
Sep 22, 2021, 10:34 PM
Yeah, I don't think I realized how complicated it is to find each of these different types in the documentation until putting together this answer for you! I'll start thinking of better ways to present this, whether that be changes to the docs or a guide that sort of walks folks through these different options.
In regards to
of
, as you mentioned, there's
string
,
block
, and any of the custom
object
types you create, but you can also have an array of references to other documents in your dataset (like the example in this piece of the docs).
It's also important to note that if want to be able to insert custom objects or images into your portable text editor, all you have to do is add those objects to the array that contains that
block
. That could be a confusing sentence, but it's much more clearly explained here .
Sep 22, 2021, 10:53 PM

Sanity– build remarkable experiences at scale

Sanity is a modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Was this answer helpful?