`slug` is `undefined` when I track mark and children from internalLink

4 replies
Last updated: Dec 14, 2020

I’m getting this from my console when I track

internalLink - mark 
_key: "7e6ceaaccca5"
_type: "internalLink"
reference: {…}
    _ref: "6230af03-9c14-4316-aa6f-ba7903d72c51"
    _type: "reference"

internalLink - children 
_key: "7e6ceaaccca5"
_type: "internalLink"
reference: {…}
    _ref: "6230af03-9c14-4316-aa6f-ba7903d72c51"
    _type: "reference"

... arrrgh!What ... am I doing wrong?!

Nov 1, 2020, 8:24 PM

mmm... maybe I have to use

_rawText(resolveReferences: {maxDepth: 10})
in my page graphql query instead of just
to get the slug

Nov 1, 2020, 9:24 PM

OK I think I begin to understand how this works!So I used the

as written above and I did it like this :
  marks: {
    strong: (props) => <strong>{props.children}</strong>,
    em: (props) => <em>{props.children}</em>,
    internalLink: ({ mark: { reference }, children }) => {
      const { slug = {} } = reference;
      const href = `/${slug.current}`;
      return <Link to={href}>{children}</Link>;
and it works like a charm :)

Nov 1, 2020, 9:31 PM

Way to go David! I really like how you solved this thread by yourself 😄

Nov 4, 2020, 5:36 PM

Thanks David! After trying to work through this guide: https://www.sanity.io/guides/portable-text-internal-and-external-links I got stuck in the same spot.

This made the difference:
Guide Shows:

internalLink: ({mark, children}) => {
Changed it to:

internalLink: ({ mark: { reference }, children })

You saved the day!!!!

Dec 14, 2020, 11:40 PM

Sanity.io: Get the most out of your content

Sanity.io is a platform to build websites and applications. It comes with great APIs that let you treat content like data. Give your team exactly what they need to edit and publish their content with the customizable Sanity Studio. Get real-time collaboration out of the box. Sanity.io comes with a hosted datastore for JSON documents, query languages like GROQ and GraphQL, CDNs, on-demand asset transformations, presentation agnostic rich text, plugins, and much more.

Don't compromise on developer experience. Join thousands of developers and trusted companies and power your content with Sanity.io. Free to get started, pay-as-you-go on all plans.