Error using @portabletext/react instead of @sanity/block-content-to-react
9 replies
Last updated: Feb 10, 2022
R
Just started using
and this is the error I receive on the
I can’t find anything special in the migration guide that I should do to make this work. It was working before…
🤔
@portabletext/reactin favor of
@sanity/block-content-to-react. I had a custom serializer which worked correctly with the old sanity lib, but errors using the new portabletext lib. Here is the
typessection of the components I pass to the
PortableTextcomponent:
types: { /* eslint-disable-next-line react/display-name */ authorReference: ({ node }) => <span>{node.author.name}</span>, mainImage: Figure, 'github.gist': ({node}) => { const { id, file } = node; return <Gist id={id} file={file ? file : undefined }/>; } },
github.gisthandler:
WebpackError: TypeError: Cannot destructure property 'id' of 'node' as it is undefined.
🤔
Feb 8, 2022, 7:06 PM
R
Here is a sample value of a
github.gistfrom one of my documents:
{ "_key": "257a2def14fd", "_type": "github.gist", "file": "run-app.sh", "id": "5995ea726914f280afb3" },
Feb 8, 2022, 7:12 PM
R
… and an error in my browser console when running the
devserver:
Warning: Cannot update a component (`DevOverlay`) while rendering a different component (`githubGist`). To locate the bad setState() call inside `githubGist`, follow the stack trace as described in <https://reactjs.org/link/setstate-in-render> githubGist@webpack-internal:///./src/components/serializers.js:32:18 PortableText@webpack-internal:///./node_modules/@portabletext/react/dist/react-portable-text.esm.js:164:22 MyPortableText@webpack-internal:///./src/components/portableText.js:21:16 div div div Container@webpack-internal:///./src/components/container.js:16:18 article BlogPost@webpack-internal:///./src/components/blog-post.js:30:18 div Layout@webpack-internal:///./src/components/layout.js:20:18 LayoutContainer@webpack-internal:///./src/containers/layout.js:21:66 BlogPostTemplate@webpack-internal:///./src/templates/blog-post.js:27:14 PageRenderer@webpack-internal:///./.cache/page-renderer.js:23:29 PageQueryStore@webpack-internal:///./.cache/query-result-store.js:39:30 RouteHandler div FocusHandlerImpl@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:359:20 FocusHandler@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:330:13 RouterImpl@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:235:20 Location@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:64:18 Router ScrollHandler@webpack-internal:///./node_modules/gatsby-react-router-scroll/scroll-handler.js:36:35 RouteUpdates@webpack-internal:///./.cache/navigation.js:294:32 EnsureResources@webpack-internal:///./.cache/ensure-resources.js:22:30 LocationHandler@webpack-internal:///./.cache/root.js:67:29 LocationProvider@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:84:20 Location@webpack-internal:///./node_modules/@gatsbyjs/reach-router/es/index.js:64:18 Root dt@webpack-internal:///./node_modules/gatsby-plugin-image/dist/index.browser-44f85d35.js:896:11 StaticQueryStore@webpack-internal:///./.cache/query-result-store.js:158:32 ErrorBoundary@webpack-internal:///./.cache/fast-refresh-overlay/components/error-boundary.js:24:35 DevOverlay@webpack-internal:///./.cache/fast-refresh-overlay/index.js:125:18 RootWrappedWithOverlayAndProvider App@webpack-internal:///./.cache/app.js:209:68
Feb 8, 2022, 7:36 PM
R
user Y
Here are the dependencies from my gatsby site:"dependencies": { "@portabletext/react": "^1.0.2", "@sanity/image-url": "^1.0.1", "date-fns": "^2.28.0", "gatsby": "^4.4.0", "gatsby-image": "^3.11.0", "gatsby-plugin-image": "2.4.0", "gatsby-plugin-postcss": "^5.4.0", "gatsby-plugin-react-helmet": "^5.4.0", "gatsby-source-sanity": "^7.3.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-gists": "^1.0.0", "react-helmet": "^6.1.0" }
Feb 10, 2022, 6:54 AM
R
user Y
Here are the dependencies from my gatsby site:"dependencies": { "@portabletext/react": "^1.0.2", "@sanity/image-url": "^1.0.1", "date-fns": "^2.28.0", "gatsby": "^4.4.0", "gatsby-image": "^3.11.0", "gatsby-plugin-image": "2.4.0", "gatsby-plugin-postcss": "^5.4.0", "gatsby-plugin-react-helmet": "^5.4.0", "gatsby-source-sanity": "^7.3.2", "react": "^17.0.2", "react-dom": "^17.0.2", "react-gists": "^1.0.0", "react-helmet": "^6.1.0" }
Feb 10, 2022, 6:54 AM
R
But given that my pending change is the switch from
@sanity/block-content-to-reactto
@portabletext/react, isn’t this error related to that single library? Or are you hooking into something Gatsby specific which is different in the new library?
Feb 10, 2022, 6:08 PM
R
user Z
yes, that works now. Could you add this info to the migration document?https://github.com/portabletext/react-portabletext/blob/main/MIGRATING.md
Feb 10, 2022, 7:35 PM
R
user Z
yes, that works now. Could you add this info to the migration document?https://github.com/portabletext/react-portabletext/blob/main/MIGRATING.md
Feb 10, 2022, 7:35 PM
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.