`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
mark
and
children
from
internalLink
:
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"

slug
is
undefined
... 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
_rawText
to get the slug
Nov 1, 2020, 9:24 PM
OK I think I begin to understand how this works!So I used the
resolveReferences
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 – build remarkable experiences at scale

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