Ошибка сериализации `.remarkBody`, возвращенного из `getStaticProps` . Причина: `неопределенный` не может быть сериализован как JSON

#javascript #reactjs #next.js #markdown #remarkjs

#javascript #reactjs #next.js #markdown #remarkjs

Вопрос:

Я получаю эту ошибку

 Error: Error serializing `.remarkBody` returned from `getStaticProps` in "/blog/[slug]".
Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value.
 

при попытке запустить это:

 const body = blogPostCollection ? blogPostCollection?.items[0]?.body : ''

  const remarkBody = remark().use(strip).process(body, (err, file) => {
    if (err) throw err
    String(file)
  })

  return {
    props: {
      remarkBody: remarkBody,
    },
    revalidate: 1
  }
 

Может ли кто-нибудь помочь мне с этим?

Ответ №1:

Возможно, вы можете использовать следующее обходное решение, чтобы обойти эту проблему:

 export const getStaticProps = async (ctx) => {
const remarkBody = await getPropsFromAService()

return { props: JSON.parse(JSON.stringify(remarkBody)) }
}
 

Ответ №2:

Вы не можете передать undefined возвращенный props from getStaticProps . Вместо этого вы можете попробовать установить значение по умолчанию null , когда это произойдет.

 return {
    props: {
        remarkBody: remarkBody ?? null,
    },
    revalidate: 1
}