Home > Mobile >  unexpected token ",", expected expression in sanity studio vision
unexpected token ",", expected expression in sanity studio vision

Time:08-29

I am following a course on react native and We are using Sanity as our backend. I have already set the schemas and made the adjustments in my Sanity Studio.

HERE IS MY FEATURED SCHEMA CODE:

export default {
  name: 'featured',
  title: 'featured Menu Categories',
  type: 'document',
  fields: [
    {
      name: 'name',
      type: 'string',
      title: 'Featured category name',
      validation: (Role) => Role.required(),
    },
    {
      name: 'short_description',
      type: 'string',
      title: 'Short description',
      validation: (Role) => Role.max(200),
    },
    {
      name: 'restuarants',
      type: 'array',
      title: 'Restuarants',
      of: [{ type: 'reference', to: [{ type: 'restuarant' }] }],
    },
  ],
};

HERE IS MY RESTAURANT SCHEMA CODE:

export default {
  name: 'restaurant',
  title: 'Restuarant',
  type: 'document',
  fields: [
    {
      name: 'name',
      type: 'string',
      title: 'Restuarant name',
      validation: (Role) => Role.required(),
    },
    {
      name: 'short_description',
      type: 'string',
      title: 'Short description',
      validation: (Role) => Role.max(200),
    },
    {
      name: 'image',
      type: 'image',
      title: 'Image of the Restuarant',
    },
    {
      name: 'lat',
      type: 'number',
      title: 'latitude of the restaurant',
    },
    {
      name: 'long',
      type: 'number',
      title: 'longitude of the restaurant,
    },
    {
      name: 'address',
      type: 'string',
      title: 'Address of the Restuarant',
      validation: (Role) => Role.required(),
    },
    {
      name: 'rating',
      type: 'number',
      title: 'Enter a rating of (1 - 5)',
      validation: (Role) =>
        Role.required()
          .min(1)
          .max(5)
          .error('please enter a number between 1 - 5'),
    },
    {
      name: 'type',
      type: 'string',
      title: 'Category',
      validation: (Role) => Role.required(),
      type: 'reference',
      to: [{ type: 'category' }],
    },
    {
      name: 'dishes',
      type: 'array',
      title: 'Dishes',
      of: [{ type: 'reference', to: [{ type: 'dish' }] }],
    },
  ],
};

I also did one for the dish and category.

Then I went to my Sanity Studio to fill in my restaurant schema fields;

After I went to my Vision Board in Sanity Studio and did a query(Just like the instructor):

 *[_type == "featured"]{
        ...,
        restuarants[]=> {
          ...,
          dishes[]=> ,
            type=> {
              name
            }
        },
      }

And I got an error of:

unexpected token ",", expected expression ;

I did what any developer would have done if they got an error. I double-checked my code and compared it to the instructor in the video. (I still got the error). Then I googled it(And found no answer). It's been 2 days now and I still haven't found anything. This is my first querying in Sanity and I am not sure what I am doing wrong with my query. Can anyone please help me? Thanks.

CodePudding user response:

As the error mentioned, you missed a ' in your schema code.

Keep a ' after restaurant

{
      name: 'long',
      type: 'number',
      title: 'longitude of the restaurant',
 },

CodePudding user response:

No worries I found the answer to my problem. The problem was with my querying.

HERE WAS MY CODE BEFORE:

*[_type == "featured"]{
        ...,
        restuarants[]=> {
          ...,
          dishes[]=> ,
            type=> {
              name
            }
        },
      }

THIS IS HOW I WAS SUPPOSED TO WRITE IT:

 *[_type == "featured"]{
        ...,
        restuarants[]-> {
          ...,
          dishes[] -> ,
            type-> {
              name
            }
        },
      }

I was supposed to use a straight line instead of an equal sign. I hope this helps anyone who runs into this problem

  • Related