2017-06-04 227 views
0

我很難找到方法來告訴每個資源(例如圖像,視頻等)何時加載。我可以通過使用window.onload在第一頁上輕鬆完成此操作,但在通過客戶端路由器更改路由時,load事件似乎並未觸發。如果有幫助,我特別使用react-router。客戶端路由器的window.onload版本?

有沒有更好的解決方案?

回答

0

要更改window動態,這樣做:

import React, { Component } from 'react'; 
import {withRouter} from 'react-router'; 

class YourComponent extends Component { 

    componentDidUpdate(prevProps) { 
    if (this.props.location !== prevProps.location) { // detect page change 
     window.scrollTo(0, 0); // for example // or document.querySelector ... or any js 
    } 
    } 

    render() { 
    return this.props.children 
    } 

} 

export default withRouter(YourComponent) 

然後包裝爲父組件:

// import react and everything 
// import { BrowserRouter as Router } from 'react-router-dom'; 

// in your render 
<Router> 
    <YourComponent> 
    <OtherComponentOrRouting /> 
    </YourComponent> 
<Router>