Error when using internalLink annotation in Sanity Studio
4 replies
Last updated: Apr 20, 2021
M
Hi, I am trying to add internalLink annotation to block content, but after I create a separate type internalLink and use it in the annotation tag via:
internalLink definitions:
In browser console I have this errortrace:
annotations: [{ type: 'internalLink' }]studio trow me error:
Uncaught error Could not resolve jsonType of undefined. No parent type found Stack: at isJSONTypeOf (<http://localhost:3333/studio/static/js/app.bundle.js:231611:11>) at <http://localhost:3333/studio/static/js/app.bundle.js:231560:55> at Array.map (<anonymous>) at validateAnnotations (<http://localhost:3333/studio/static/js/app.bundle.js:231548:22>) at validateMarks (<http://localhost:3333/studio/static/js/app.bundle.js:231483:19>) at validateBlockType (<http://localhost:3333/studio/static/js/app.bundle.js:231440:13>) at visitors.reduce._objectSpread._problems (<http://localhost:3333/studio/static/js/app.bundle.js:230289:17>) at Array.reduce (<anonymous>) at <http://localhost:3333/studio/static/js/app.bundle.js:230288:21> at <http://localhost:3333/studio/static/js/app.bundle.js:230310:49> (Your browsers Developer Tools may contain more info)
import React from 'react'; const InternalLinkRender = ({ children }) => <span>{children} 🔗</span>; export default { title: 'Internal link to another document', name: 'internalLink', type: 'reference', description: 'Locate a document you want to link to', to: [{ type: 'page' }, { type: 'route' }], blockEditor: { icon: () => '🔗', render: InternalLinkRender, }, };
Uncaught Error: Could not resolve jsonType of undefined. No parent type found at isJSONTypeOf (isJSONTypeOf.js:16) at block.js:167 at Array.map (<anonymous>) at validateAnnotations (block.js:155) at validateMarks (block.js:90) at validateBlockType (block.js:47) at visitors.reduce._objectSpread._problems (validateSchema.js:62) at Array.reduce (<anonymous>) at validateSchema.js:61 at validateSchema.js:83
Apr 16, 2021, 12:32 PM
G
Can you try replacing
annotations: [{ type: 'internalLink' }]with
annotations: [internalLink], then making sure you’re importing
internalLink.
Apr 16, 2021, 2:32 PM
M
user A
ok this works, if I import internalLink direct to document where I use it. But I thought it was enough to add it to the schemas.js as a new type.Apr 16, 2021, 3:17 PM
In your
schema.jsdid you both import
internalLinkand add it to the types array?
Apr 16, 2021, 5:30 PM
M
user M
yes, like many other types. It work if I use it non as annotation but as field in this document, but in the annotation it trwos this error. If I import it directly to document and use it this way, I have problem with resolve reference in the GraphQL qeury.Apr 20, 2021, 7:04 AM
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.