2016-07-07 7 views
2

私はドキュメントのこの部分を読んだ後、reactJsを学んでいます:ismountedアンチパターン、自分の財産を追跡

isMountedを(避けるために、コードをアップグレードする人のための容易な移行戦略)が取り付けられた状態を自分で追跡することです。 componentDillMountで _isMountedプロパティをtrueに設定し、componentWillUnmountでfalseに設定して、この変数を使用して コンポーネントのステータスを確認してください。

_isMountedの値はstateに格納されている必要がありますか?

私はこれまでのところ、これを持っている:

isMounted: function(){ 
    this.setState({ _isMounted: true }); 
}, 

componentDidMount: function() { 
    if(this.state._isMounted) { // This is bad. 
     this.setState({...}); 
    } 
}, 
+0

私は実際のようにそれを設定し、受け入れ答えに反対し、それが意味だと思う 'this._isMounted = true'をwillUnmountでdidMountと '... = false'を実行し、' if(this._isMounted) 'で必要な場所を確認してください。 – TKoL

答えて

1

ので、はい、あなたは、state_isMountedを追跡することができます:それはあなたがそれを最も可能性が高いで使用する小道具

  • から計算することができません

    1. render()

    ビアhttps://twitter.com/dan_abramov/status/749710501916139520

    http://codepen.io/mikechabot/pen/GqvyOE

    SomeComponent.jsx

    class SomeComponent extends React.Component { 
        constructor(props) { 
        super(props); 
        this.state = { 
         _isMounted: false 
        } 
        } 
        componentDidMount() { 
        this.setState({ 
         _isMounted: true 
        }) 
        } 
        render() { 
        const { _isMounted } = this.state; 
        return (
         <div> 
         Mounted? { _isMounted ? 'Yes' : 'No' } 
         </div> 
        ) 
        } 
    } 
    
  • 関連する問題