[英]Using Local Methods within React Lifecycle Methods
我很好奇以下代碼是否有效:
class App extends React.Component { componentDidMount() { logger('mount') } componentDidUpdate() { logger('update') } logger = x => { console.log(x) } render() { return ( <div className='container'> </div> ) } } ReactDOM.render(<App />, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="app"></div>
我已經在React上工作了一段時間,但從未遇到過在生命周期方法中使用本地方法的原因,但是我認為出於好奇,我今天會嘗試使用它。 我至今無法找到任何指定的解釋,為什么這可能行不通。 是應用程序初始化的順序,只是在調用時沒有看到它,還是我沒有想到的基本內容?
我相信這可能就像將this.logger('mount')
和this.logger('update')
logger('mount')
和logger('update')
this.logger('mount')
一樣簡單:)
您需要為此添加函數調用this.
訪問本地方法:
class App extends React.Component { componentDidMount() { this.logger('mount') } componentDidUpdate() { this.logger('update') } logger = x => { console.log(x) } render() { return ( <div className='container'> </div> ) } } ReactDOM.render(<App />, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="app"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.