7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

問答無用でReactコンポーネントを初期化・リセットする方法

Posted at

はじめに

とにかくコンポーネントをリセットしたい!マウントからやり直したい!
という時に使えるテクニックを紹介します。

やり方

初期化したいコンポーネントのpropskeyを設定し、keyを更新します。

const Component = () => {
  return (
    <div key={something}>
      ...
    </div>
  )
}

説明

コンポーネントにはライフサイクルがあります。

DZ-97vzW4AAbcZj.jpeg

Reactコンポーネントはとても賢いので、うまく差分を計算してコンポーネントは不要な再描画が走らないようにしています。

そのため、マウント後の更新に関しては基本的にUpdateが適用されます。

一方でkeyはコンポーネントの一意性を保つための仕組みですので、keyが更新されるという事は、まるっきり新しいコンポーネント扱いになります。

そのため、Updateではなく、Mountから新規で描画できる、というわけです。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?