回答編集履歴

3

曖昧な文章に詳細を追記 & カスタム→カスタマイズに置換

2020/11/15 00:19

投稿

itepechi
itepechi

スコア248

test CHANGED
@@ -124,11 +124,11 @@
124
124
 
125
125
 
126
126
 
127
- ### カスタしたDocumentクラスでServerStyleSheetを使用する
128
-
129
-
130
-
131
- Next.jsのデフォルトの`Document`クラスは[こちら](https://github.com/vercel/next.js/blob/f0d2e64371c298741fb425932c96f75c653333ee/packages/next/pages/_document.tsx#L71-L117)で確認できます。このクラスの`static getInitialProps`静的メソッドを次のコードで拡張します:
127
+ ### カスタマイズしたDocumentクラスでServerStyleSheetを使用する
128
+
129
+
130
+
131
+ `pages/_document.[jt]sx?`にファイルを置くことで、カスタマイズした`Document`クラスを使用することができます。(Next.jsのデフォルトの`Document`クラスは[こちら](https://github.com/vercel/next.js/blob/f0d2e64371c298741fb425932c96f75c653333ee/packages/next/pages/_document.tsx#L71-L117)で確認できます。このクラスの`static getInitialProps`静的メソッドを次のコードで拡張します:
132
132
 
133
133
 
134
134
 

2

カテゴリーがTypeScriptでしたのでコードに型指定を追加しました

2020/11/15 00:19

投稿

itepechi
itepechi

スコア248

test CHANGED
@@ -2,11 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- JavaScriptの使用を前提としてます。TypeScriptのサポートが必要な場合は、追記していただければ確認次第回答更新します。
6
-
7
-
8
-
9
- また、この回答は問題の原因がstyled-componentsにあると想定しての内容になります。以下の手順で作業を行ったにもかかわらず問題が解決されない場合は、Next.jsのCSSインポート機能でスタイルシートを読み込んでいないか(例:`import styles from '../styles/SomeStyle.module.css'`)確認してください。当該機能を利用している場合、Next.jsのCSSインポート機能は[SSRをサポートしていない](https://github.com/vercel/next.js/issues/14286)ため、他のアプローチでスタイルを設定する必要があります。styled-componentsを利用している場合は[`createGlobalStyle`がおすすめです](https://styled-components.com/docs/api#helpers)。
5
+ この回答は問題の原因がstyled-componentsにある想定しての内容になります。以下の手順で作業を行ったにもかかわらず問題が解決されない場合は、Next.jsのCSSインポート機能でスタイルシートを読み込んでいないか(例:`import styles from '../styles/SomeStyle.module.css'`)確認してください。当該機能を利用している場合、Next.jsCSSインポート機能は[SSRをサポートしていない](https://github.com/vercel/next.js/issues/14286)め、他のアプローチでスタイル設定する必要があります。styled-componentsを利用している場合は[`createGlobalStyle`がおすすめです](https://styled-components.com/docs/api#helpers)。
10
6
 
11
7
 
12
8
 
@@ -142,7 +138,7 @@
142
138
 
143
139
  import React from 'react'
144
140
 
145
- import Document from 'next/document'
141
+ import Document, { DocumentContext, DocumentInitialProps } from 'next/document'
146
142
 
147
143
  import { ServerStyleSheet } from 'styled-components'
148
144
 
@@ -152,15 +148,19 @@
152
148
 
153
149
  // 拡張部ここから〜
154
150
 
155
- static async getInitialProps(ctx) {
151
+ static async getInitialProps(
152
+
153
+ ctx: DocumentContext
154
+
155
+ ): Promise<DocumentInitialProps> {
156
156
 
157
157
  const sheet = new ServerStyleSheet()
158
158
 
159
159
  const originalRenderPage = ctx.renderPage
160
160
 
161
-
162
-
161
+
162
+
163
- ctx.renderPage = () =>
163
+ ctx.renderPage = (): ReturnType<DocumentContext['renderPage']> =>
164
164
 
165
165
  originalRenderPage({
166
166
 

1

typo修正

2020/11/15 00:06

投稿

itepechi
itepechi

スコア248

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- また、この回答は問題の原因がstyles-componentsにあると想定しての内容になります。以下の手順で作業を行ったにもかかわらず問題が解決されない場合は、Next.jsのCSSインポート機能でスタイルシートを読み込んでいないか(例:`import styles from '../styles/SomeStyle.module.css'`)確認してください。当該機能を利用している場合、Next.jsのCSSインポート機能は[SSRをサポートしていない](https://github.com/vercel/next.js/issues/14286)ため、他のアプローチでスタイルを設定する必要があります。styled-componentsを利用している場合は[`createGlobalStyle`がおすすめです](https://styled-components.com/docs/api#helpers)。
9
+ また、この回答は問題の原因がstyled-componentsにあると想定しての内容になります。以下の手順で作業を行ったにもかかわらず問題が解決されない場合は、Next.jsのCSSインポート機能でスタイルシートを読み込んでいないか(例:`import styles from '../styles/SomeStyle.module.css'`)確認してください。当該機能を利用している場合、Next.jsのCSSインポート機能は[SSRをサポートしていない](https://github.com/vercel/next.js/issues/14286)ため、他のアプローチでスタイルを設定する必要があります。styled-componentsを利用している場合は[`createGlobalStyle`がおすすめです](https://styled-components.com/docs/api#helpers)。
10
10
 
11
11
 
12
12