2017-08-19 47 views
5

çağrılmıyor React/Mobx uygulamasına sahibim. Depoda değişiklik yaptığımda, bileşen güncelleniyor (yeniden oluşturuluyor), ancak biraz daha fazla işlevsellik eklemek için bazı karşılaştırmalar yapmam gerekiyor, bu yüzden componentWillReceiveProps (nextProps) kullanmak istiyorum ve nextProps öğesini this.props ile karşılaştırmak istiyorum. Her nasılsa çağrılmadı. Herhangi bir fikir, yanlış yaptığım şey, ya da bunu yapmak için başka neler yapabilirim?React/Mobx - bileşeni yeniden oluşturuluyor, ancak componentWillReceiveProps()

+0

kodunuzu buraya yapıştırın, lütfen –

+0

Şuna bakın: https://github.com/mobxjs/mobx-react/issues/281 – robertklep

+2

Ve özellikle de ** urugator ** açıklamasında. https://github.com/mobxjs/mobx-react/issues/281#issuecomment-309410018 – felixmosh

cevap

1

tl; dr: componentWillUpdate ve componentDidUpdate


geçirilen nesne deposu bir prop asla değişeceği gibi, hatta içerik değişiklikleri kullanın. @observable kullanmanın hilesi, prodüksiyonu değiştirmeden, bileşendeki güncellemeyi tetikleyeceğidir. Bu nedenle, componentComponentUpdate, componentWillReceiveProps ve componentDidReceiveProps gibi yaşam döngüsü işlevlerini kullanmak, bileşen ya da durum değiştiğinde tetiklendiğinden dolayı çalışmayacaktır. Mobx doc, shouldComponentUpdate bölümünde iyi açıklıyor.

Gözlemlenebilir bir güncellemeyi yakalamak için, yaşam döngüsü yığınında biraz daha derine gitmeli ve componentWillUpdate ve componentDidUpdate'u kullanmalıyız.