質問編集履歴

3

状況に変化があったので編集

2021/01/24 17:08

投稿

Daimian
Daimian

スコア53

test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,8 @@
1
- [https://etto.world/](https://etto.world/)
1
+ Next.jsでmdファイルをpre-renderingしてhtmlに変換し、その結果を表示するシンプルなサイトを作成しています。
2
2
 
3
3
 
4
4
 
5
- ↑上記のサイトはNext.jsで作成されています。
6
-
7
- コンテンツはmdファイルで準備し、pre-renderingでmdファイルをhtmlに変換しています。
8
-
9
-
10
-
11
- 非常にシンプルな構成ですが、devツールを開いて、ページ上部にあるリンクや言語切り替えをローディング直後に連打すると
5
+ 非常にシンプルな構成のサイトなのですが、ページ遷移や言語切り替えをローディング直後に連打すると
12
6
 
13
7
  ```
14
8
 
@@ -20,7 +14,9 @@
20
14
 
21
15
  という警告文が表示されます。
22
16
 
17
+
18
+
23
- 該当箇所はおそらく以下のpre-rendering処理にあると考えています。
19
+ 以下のpre-rendering処理に何か問題があるのでしょうか?
24
20
 
25
21
 
26
22
 
@@ -190,4 +186,4 @@
190
186
 
191
187
 
192
188
 
193
- この警告を解消するにはどうすれば良いでしょうか?ヒントでも結構ですのでご教示いただけますと幸いです。
189
+ ヒントでも結構ですのでご教示いただけますと幸いです。

2

進展がありましたので内容を大幅に更新しています。

2021/01/24 17:08

投稿

Daimian
Daimian

スコア53

test CHANGED
@@ -1 +1 @@
1
- Next.js 「Error: Route did not complete loading: /XXX」というエラーが発生します。
1
+ Next.js 「Can't perform a React state update on an unmounted component」という警告が発生し、メモリリークしてしいます。
test CHANGED
@@ -12,47 +12,19 @@
12
12
 
13
13
  ```
14
14
 
15
- Error: Route did not complete loading: /posts/[id]」
15
+ Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.
16
16
 
17
17
  ```
18
18
 
19
19
 
20
20
 
21
- ```
21
+ という警告文が表示されます。
22
22
 
23
- Error: Route did not complete loading: /
23
+ 該当箇所はおそらく以下のpre-rendering処理にあると考えています。
24
-
25
- ```
26
24
 
27
25
 
28
26
 
29
- というエラーが発生します。
30
-
31
-
32
-
33
- Link処理は[公式のドキュメント](https://nextjs.org/)通りに実装しています
34
-
35
- ```
36
-
37
- <Link href={`/posts/${XXX}#${XXX.id}`} key={`${XXX.id}-${XXX}`}>
38
-
39
- <a>
40
-
41
- <li className={XXX}>
42
-
43
- <p>{mdファイルのタイトル}</p>
44
-
45
- </li>
46
-
47
- </a>
48
-
49
- </Link>
50
-
51
- ```
52
-
53
-
54
-
55
- pre-rendering処理[公式のドキュメント](https://nextjs.org/)通りに実装しています
27
+ pre-rendering処理[公式のドキュメント](https://nextjs.org/)を参考に実装
56
28
 
57
29
  ```
58
30
 
@@ -83,6 +55,8 @@
83
55
  const sortedHeadlineTitles = getSortedHeadlineTitles(locale);
84
56
 
85
57
 
58
+
59
+ // ids = ['04', '03', '02', '01']
86
60
 
87
61
  const ids = []
88
62
 
@@ -144,12 +118,76 @@
144
118
 
145
119
  }
146
120
 
121
+
122
+
123
+ export default function Post({ sortedHeadlineTitles, postAllData, locale }) {
124
+
125
+ return (
126
+
127
+ <Layout sortedHeadlineTitles={sortedHeadlineTitles}>
128
+
129
+
130
+
131
+ <About locale={locale} />
132
+
133
+
134
+
135
+ {postAllData.map((postData) => (
136
+
137
+ <PostData postData={postData} key={postData.id} />
138
+
139
+ ))}
140
+
141
+ </Layout>
142
+
143
+ )
144
+
145
+ }
146
+
147
147
  ```
148
148
 
149
149
 
150
150
 
151
- エラーはなぜ発生するのかヒントで結構ですのでご教示いただけすと幸いです。
151
+ 警告文通りに解釈するunMount時に更新がかかってしってるそうです。
152
152
 
153
153
 
154
154
 
155
+ バンドル後のdevツールで確認したコードは
156
+
157
+ ```
158
+
159
+ function Post(_ref) {
160
+
161
+ _s();
162
+
163
+
164
+
165
+ var _this = this;
166
+
167
+
168
+
169
+ var sortedHeadlineTitles = _ref.sortedHeadlineTitles,
170
+
171
+ postAllData = _ref.postAllData,
172
+
173
+ locale = _ref.locale;
174
+
175
+
176
+
177
+ 以下 割愛
178
+
179
+ ```
180
+
181
+ となっており、この
182
+
183
+ ```
184
+
185
+ var sortedHeadlineTitles = _ref.sortedHeadlineTitles,
186
+
187
+ ```
188
+
189
+ が問題だとdevツールで記載されていました。
190
+
191
+
192
+
155
- (エラー文通り、loadingが完了していないのが原因だと考えておりますが、loadingが完了して初めて、Link有効にする、といのはUIに影響が出る気がしてます、ローディグ完了のイベンを取得きるかどうか不明です。。)
193
+ 警告解消するにはどすれば良ょうか?ヒントでも結構ですのでご教示いただけまと幸いです

1

初心者マークつける

2021/01/24 15:23

投稿

Daimian
Daimian

スコア53

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,25 @@
8
8
 
9
9
 
10
10
 
11
+ 非常にシンプルな構成ですが、devツールを開いて、ページ上部にあるリンクや言語切り替えをローディング直後に連打すると
12
+
13
+ ```
14
+
11
- 非常にシンプルな構成ですが、devツールを開いて、ページ上部にあるリンクや言語切り替えをローディング直後に連打すると「Error: Route did not complete loading: /posts/[id]」や「Error: Route did not complete loading: /」というエラーが発生します。
15
+ Error: Route did not complete loading: /posts/[id]」
16
+
17
+ ```
18
+
19
+
20
+
21
+ ```
22
+
23
+ Error: Route did not complete loading: /
24
+
25
+ ```
26
+
27
+
28
+
29
+ というエラーが発生します。
12
30
 
13
31
 
14
32