diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index bf049ee6eac1b750ea9a57d1a044a8d36b68ccaa..fd6ec5cd00d00178b86ef77aab4694b01de5c2a0 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -736,6 +736,9 @@ export default async function getBaseWebpackConfig( 'process.env.__NEXT_PRERENDER_INDICATOR': JSON.stringify( config.devIndicators.autoPrerender ), + 'process.env.__NEXT_STRICT_MODE': JSON.stringify( + config.reactStrictMode + ), ...(isServer ? { // Fix bad-actors in the npm ecosystem (e.g. `node-formidable`) diff --git a/packages/next/client/index.js b/packages/next/client/index.js index 2eed1010881e8484dc24a8cad33a9f04650ce7ce..02118913c1c4e01d0c322eff131566a7ed14e10c 100644 --- a/packages/next/client/index.js +++ b/packages/next/client/index.js @@ -372,11 +372,19 @@ async function doRender ({ App, Component, props, err }) { appProps }) - // We catch runtime errors using componentDidCatch which will trigger renderError - renderReactElement( + const elem = ( - , + + ) + + // We catch runtime errors using componentDidCatch which will trigger renderError + renderReactElement( + process.env.__NEXT_STRICT_MODE ? ( + {elem} + ) : ( + elem + ), appElement ) diff --git a/packages/next/next-server/server/config.ts b/packages/next/next-server/server/config.ts index 60f3ac43758eb5e721d820a60f8f4607da0a974e..712eca701718ad09ee2e8d5d57faa8399630ab71 100644 --- a/packages/next/next-server/server/config.ts +++ b/packages/next/next-server/server/config.ts @@ -53,6 +53,7 @@ const defaultConfig: { [key: string]: any } = { }, serverRuntimeConfig: {}, publicRuntimeConfig: {}, + reactStrictMode: false, } const experimentalWarning = execOnce(() => {