ReactJS – getDerivedStateFromProps() 方法


在本文中,我們將介紹如何在元件呈現之前執行函式。

此方法在元件渲染或更新前呼叫。此方法主要用於在元件渲染之前更新狀態,這取決於元件接收的屬性。此方法在元件每次重新渲染時呼叫。

語法

static getDerivedStateFromProps(props, state)

引數

  • props − 傳遞給元件的 props

  • state − 上次元件狀態

示例

在此示例中,我們將構建一個 React 應用程式,該應用程式將獲取使用者列表,單擊“獲取使用者”按鈕後,Show 元件將放置在 DOM 中,在此元件呈現之前,將呼叫 getDerivedStateFromProps 方法,該方法將根據傳遞給它的屬性更新狀態。

App.jsx

import React from 'react';

class App extends React.Component {
   constructor() {
      super();
      this.state = {
         show: false,
      };
   }
   render() {
      return (
         <div>
            <h1>User List</h1>
            <h3>Username: Rahul</h3>
            <button onClick={() => this.setState({ show: true })}>
               Fetch Users
            </button>
            {this.state.show ? <Show email="qwerty@gmail.com" /> : null}
         </div>
      );
   }
}
class Show extends React.Component {
   constructor() {
      super();
         this.state = {
            email: '',
         };
   }
   static getDerivedStateFromProps(props, state) {
      console.log('getDerivedStateFromProps method is called');
      return { email: props.email };
   }
   render() {
      return (
         <div>
            <h3>Email: {this.state.email}</h3>
         </div>
      );
   }
}
export default App;

輸出

這會產生以下結果。

更新時間: 2021 年 3 月 18 日

4K+ 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.