2017-10-30 13 views
0

私はreact-router v 4.2を使用していて、いくつかの問題を抱えています。React-router v4.2のコンポーネント間のマウント解除とマウント

最初のものは次のとおりです:

class One extends React.Component { 
    componentWillMount() { 
    console.log('One mount'); 
    } 
    componentWillUnmount() { 
    console.log('One unmount'); 
    } 
    render() { 
    ... 
    } 
} 

2つ目がある:2つのコンポーネントがあります

class Two extends React.Component { 
    componentWillMount() { 
    console.log('Two mount'); 
    } 
    componentWillUnmount() { 
    console.log('Two unmount'); 
    } 
    render() { 
    ... 
    } 
} 

私は2つのコンポーネントの一つからページをめくる

。そしてワンに戻る。私はなるだろう:

ワンマウント>

一つ 二アンマウント 2つは >ワンマウントをマウント> 一つアンマウント>は、その後アンマウント二つの最初に取り付けられました。おかしいです!それから、私は反応ルータをv3.0.0に変更しようとしましたが、問題はなくなりました!だから私はそれがv4.2の問題だと思う。

+0

codepen例:します。https:

<Switch> <Route path="/Two" component={Two} /> <Route path="/One" component={One} /> </Switch> 

codepenアーニー・ヤンによって作成されました//codepen.io/Chuckthwu/pen/JOoOVp?editors=1111 –

+0

v2.0でのコード例(正しい例):https://codepen.io/Chuckthwu/pen/RjNxwv?editors=1111 –

答えて

0

私はこの問題を解決しました。おかげErnie YangのためのFacebookのフロントエンドコミュニティで:Link

それは単にのように、ルートにスイッチのコンポーネントを追加しました: https://codepen.io/anon/pen/jaEKve?editors=1111

+0

これは、 'componentWillUnmount'がasyncを起動できるので、React 16では動作しません刻々と詳細はこちら:https://github.com/facebook/react/issues/11106。 –

関連する問題