亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

強制 RBAC 響應組件

強制 RBAC 響應組件

Cats萌萌 2021-11-25 15:43:01
如果我們有一個 React 組件,可以說它<App />正在另一個React 組件中呈現。我能有<App doSomething/>這樣我就可以調用函數DoSomething的它之前被渲染?抱歉,補充一下上面的問題 - 我想doSomething在庫中聲明外部,以便我可以在<App doSomething/>呈現React 組件之前導入和調用它。
查看完整描述

2 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

您可以在此處閱讀有關生命周期方法的信息。https://reactjs.org/docs/react-component.html#the-component-lifecycle

之前的時間componentWillMount()正是您要找的?,F在它已被棄用。

根據反應文檔頁面中鏈接的圖表,進行調用的位置可以是constructor http://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

您也可以將默認布爾值設置為 false,然后componentDidMount執行您想要的操作并將布爾值設置為 true,但在渲染方法中檢查該布爾值是否為 true 并渲染您的內容


查看完整回答
反對 回復 2021-11-25
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

是的


在這種情況下doSomething是一個可以是一個函數的道具。使用 React 生命周期方法,您可以在組件呈現之前調用此函數。


從反應文檔:


getDerivedStateFromProps 在調用 render 方法之前調用,在初始安裝和后續更新中都是如此。它應該返回一個對象來更新狀態,或者返回 null 來更新


(因為ComponentWillMount已棄用)。


前任:


class App extends React.Component {


    static getDerivedStateFromProps(props) {

    props.sayHello();

    return null;

  }


  render() {

    console.log("Rendering");

    return <div>Hello {this.props.name}</div>;

  }

 

}


class Hello extends React.Component {


  sayHello() {

    console.log("Hello!");

  }


  render() {

    return <App sayHello={this.sayHello} />;

  }

}


ReactDOM.render(

  <Hello />,

  document.getElementById('container')

);

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>


<div id="container">

    <!-- This element's contents will be replaced with your component. -->

</div>

doSomething函數來自哪里并不重要,你可以將它作為一個 prop 傳遞,或者直接調用它。


查看完整回答
反對 回復 2021-11-25
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號