2017-11-12 7 views
0

に反応します私は別のルートに移行するときにそれらのスクリプトを再度実行する必要があります。ページ全体が再ロードされるわけではないので、特定のコンポーネントだけがスクリプトを再実行して問題を引き起こすことはありません。は私の私はこのようないくつかのスクリプトを持ってプロジェクトを反応させるのが私のhtmlの頭の中でそう

これらのスクリプトを強制的に再実行するにはどうすればよいですか。スクリプトで

答えて

1

<script> 
    window.someMethod = function() { 
    // do something here 
    }; 

    window.someMethod(); 
</script> 

でが反応:

import { withRouter } from 'react-router' 

/// ... 

const someMethod = window.someMethod; 

class App extends React.Component { 

    static propTypes = { 
    location: React.PropTypes.object.isRequired 
    } 

    // ... 

    componentDidUpdate(prevProps) { 
    if (this.props.location !== prevProps.location) { 
     this.onRouteChanged(); 
    } 
    } 

    onRouteChanged() { 
    someMethod(); 
    } 

    // ... 
    render(){ 
    return <Switch> 
     <Route path="/" exact component={HomePage} /> 
     // ... 
     // ... 
     <Route component={NotFound} /> 
     </Switch> 
    } 
} 

export default withRouter(App); 
関連する問題