2 回答

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 并渲染您的內容

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 傳遞,或者直接調用它。
添加回答
舉報