diff --git a/examples/with-react-intl/pages/_app.js b/examples/with-react-intl/pages/_app.js
index 45cea8c352ff5f..87acb14fac4a43 100644
--- a/examples/with-react-intl/pages/_app.js
+++ b/examples/with-react-intl/pages/_app.js
@@ -1,41 +1,36 @@
-import App from 'next/app'
import { createIntl, createIntlCache, RawIntlProvider } from 'react-intl'
// This is optional but highly recommended
// since it prevents memory leak
const cache = createIntlCache()
-export default class MyApp extends App {
- static async getInitialProps({ Component, ctx }) {
- let pageProps = {}
+function MyApp({ Component, pageProps, locale, messages }) {
+ const intl = createIntl(
+ {
+ locale,
+ messages,
+ },
+ cache
+ )
+ return (
+
+
+
+ )
+}
- if (Component.getInitialProps) {
- pageProps = await Component.getInitialProps(ctx)
- }
+MyApp.getInitialProps = async ({ Component, ctx }) => {
+ let pageProps = {}
- // Get the `locale` and `messages` from the request object on the server.
- // In the browser, use the same values that the server serialized.
- const { req } = ctx
- const { locale, messages } = req
+ const { req } = ctx
+ const locale = req?.locale ?? ''
+ const messages = req?.messages ?? {}
- return { pageProps, locale, messages }
+ if (Component.getInitialProps) {
+ Object.assign(pageProps, await Component.getInitialProps(ctx))
}
- render() {
- const { Component, pageProps, locale, messages } = this.props
-
- const intl = createIntl(
- {
- locale,
- messages,
- },
- cache
- )
-
- return (
-
-
-
- )
- }
+ return { pageProps, locale, messages }
}
+
+export default MyApp