質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

3315閲覧

Reactのhooksで順番を処理の教えてください。

roooo

総合スコア57

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/06/11 02:31

編集2020/06/11 02:41

Wrapperコンポーネント以下の子コンポーネント全てで先に共通処理をしたいのですが
例えば
console.log("最初に表示したい")

を先に表示させたいのですが、どのようにすればよろしいでしょうか?

import React, { useState, useEffect } from "react"; const Wrapper = () => { useEffect(() => { console.log("最初に表示したい"); }); return ( <div> {console.log("後で表示したい")} <p>aaaaaaaa</p> </div> ); }; export default Wrapper;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/06/11 02:33

なぜそのようなことをしたいのでしょうか(したいことによっては、やり方を変えたほうが適当です)。
damarai0422

2020/06/11 02:39

return時に副作用を起こすことは基本ないと思います。
roooo

2020/06/11 02:41

記載いたしました。
maisumakun

2020/06/11 02:43

先にする「共通処理」はどのようなものでしょうか?
roooo

2020/06/11 02:57

consoleの表示です。
Kenji.Noguchi

2020/06/11 06:31

こんな風に、2番目の引数に空のリスト[]を入れたら、どうでしょう?useEffect(() => { console.log("最初に表示したい"); }, []);
guest

回答2

0

ベストアンサー

目的がよくわかっていませんが、先に表示したいということだけであれば、useEffectを使わずに書けば良いのではないでしょうか。useEffectの中に書いた処理は描画結果が反映された後に実行されます。

typescript

1const Wrapper = () => { 2 console.log("最初に表示したい") 3 4 return ( 5 <div> 6 {console.log("後で表示したい")} 7 <p>aaaaaaaa</p> 8 </div> 9 ); 10};

投稿2020/06/11 12:01

markey

総合スコア355

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

consoleの表示です。

そもそも論として、return以下で返されるJSXの生成処理は冪等である(何回実行されても問題ない)べきものなので、そこにconsole.logを書いた場合、順番や実行回数の保証はありません

つまり、ご提示のとおりにconsole.logを書いた場合、console.log("後で表示したい")が先に表示されようが2回実行されようが、それも想定の範囲内です。

投稿2020/06/11 03:02

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roooo

2020/06/11 03:15

先に表示したい。 を先に表示する方法はないと言うことでしょうか
maisumakun

2020/06/11 03:17

はい、「console.log("後で表示したい")」の実行タイミングを考えること自体が間違っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問