-
Notifications
You must be signed in to change notification settings - Fork 812
Closed
Labels
Package: react-emailThis is the CLI we generally use as just `email` on the temrinal.This is the CLI we generally use as just `email` on the temrinal.Type: BugConfirmed bugConfirmed bug
Description
Describe the Bug
I tried using React context in my email templates, which works perfectly fine with the render
package, but breaks with the email dev
command.
I get the following error on the console:
Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
Complete console output
$ email dev
✔ Emails preview generated
⠋ Installing dependencies...
[1/4] Resolving packages...
warning workspace-aggregator-f031c1ce-e58a-457c-a803-e5cf375879b8 > react-email-client > @types/[email protected]: This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
✔ Dependencies installed
warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts.
$ next dev -p 3000
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
warn - You have enabled experimental feature (appDir) in next.config.js.
warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk.
info - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback
event - compiled client and server successfully in 935 ms (262 modules)
wait - compiling...
event - compiled client and server successfully in 147 ms (262 modules)
wait - compiling /_error (client and server)...
event - compiled client and server successfully in 48 ms (263 modules)
warn - Fast Refresh had to perform a full reload due to a runtime error.
wait - compiling /preview/[slug]/page (client and server)...
event - compiled client and server successfully in 2.7s (1433 modules)
wait - compiling...
event - compiled successfully in 172 ms (746 modules)
Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
error - TypeError: Cannot read properties of null (reading 'useContext')
at useCtx (./emails/components/context.tsx:12:64)
at Foo (./emails/components/foo.tsx:14:70)
error - TypeError: Cannot read properties of null (reading 'useContext')
at useCtx (./emails/components/context.tsx:12:64)
at Foo (./emails/components/foo.tsx:14:70)
digest: "2702191682"
error - TypeError: Cannot read properties of null (reading 'useContext')
at useContext (/Users/bergold/Sources/_tmp/react-email-reproductions/react-email-starter/node_modules/next/dist/compiled/react/cjs/react.development.js:1753:21)
at useCtx (webpack-internal:///./emails/components/context.tsx:12:64)
at Foo (webpack-internal:///./emails/components/foo.tsx:14:70)
at renderWithHooks (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7042:26)
at renderIndeterminateComponent (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7101:25)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7292:21)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderChildrenArray (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7517:21)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7462:21)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderHostElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7029:13)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7297:17)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderHostElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7029:13)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7297:17)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderHostElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7029:13)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7297:17)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderHostElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7029:13)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7297:17)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderForwardRef (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7209:17)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7348:29)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderHostElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7029:13)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7297:17)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderIndeterminateComponent (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7143:21)
at renderElement (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7292:21)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7431:29)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24)
at renderChildrenArray (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7517:21)
at renderNodeDestructiveImpl (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7462:21)
at renderNodeDestructive (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7407:28)
at renderNode (webpack-internal:///(sc_server)/../node_modules/next/dist/compiled/react-dom/cjs/react-dom-server-legacy.node.development.js:7555:24) {
page: '/preview/notion-magic-link'
}
Which package is affected (leave empty if unsure)
react-email
Link to the code that reproduces this issue
https://github.com/bergold/react-email-usecontext
To Reproduce
- Checkout the linked reproduction repository
- Make note of the use of...
createContext
inemails/components/context.tsx
Provider
inemails/notion-magic-link.tsx
useContext
inemails/components/foo.tsx
- Install deps
yarn
- Run
yarn run dev
- Open localhost:3000/preview/notion-magic-link in your browser
- Observe the error in your terminal output
Expected Behavior
No errors and the <Foo />
component should render the context value.
What's your node version? (if relevant)
18.14.0
petercpwong, tdg5, DaltheCow, loettz, antoineharel and 2 more
Metadata
Metadata
Assignees
Labels
Package: react-emailThis is the CLI we generally use as just `email` on the temrinal.This is the CLI we generally use as just `email` on the temrinal.Type: BugConfirmed bugConfirmed bug