我有React/Mobx应用程序。当我在商店中进行更改时,组件正在更新(重新渲染),但我需要进行一些比较以添加更多功能,所以我想使用componentWillReceiveProps(nextProps)并将nextProps与this.props进行比较。不知何故,它不被称为。任何想法,我做错了什么,或者我可以做什么,为了得到它?React/Mobx - 组件重新渲染,但未调用componentWillReceiveProps()
5
A
回答
1
TL;博士:使用componentWillUpdate
和componentDidUpdate
对象存储通过为道具不会改变,即使其含量的变化。使用@observable的技巧是它会在不更改道具的情况下触发组件中的更新。因此,使用诸如shouldComponentUpdate,componentWillReceiveProps和componentDidReceiveProps之类的生命周期函数将无法使用,因为当组件的道具或状态发生更改时会触发它们。 mobx文档在shouldComponentUpdate部分对此进行了很好的解释。
因此,为了捕获可观察的更新,我们必须深入生命周期堆栈并使用componentWillUpdate
和componentDidUpdate
。
相关问题
- 1. 反应使用componentWillReceiveProps重新渲染组件
- 2. Ember重新渲染组件
- 3. 重新渲染组件在Ember.js
- 4. ReactiveVar无法重新渲染React组件
- 5. 无法让React组件重新渲染
- 6. 角2重新渲染从@ViewChild组件
- 7. React/Redux组件不会重新渲染
- 8. 如何手动重新渲染组件?
- 9. React js重新渲染大量组件
- 10. 无法重新渲染子组件reactjs
- 11. 从后端重新渲染wicket组件
- 12. 重新渲染一个Vue.js组件
- 13. 查询未渲染组件
- 14. 如何重新渲染一些组件,但不是全部?
- 15. AngularJS + Rails $ scope模型已更新,但未触发重新渲染
- 16. ReactJS道具已更新,但字段未重新渲染
- 17. FullCalendar重新渲染事件
- 18. Redux&React:调用componentDidUpdate,但不会发生重新渲染
- 19. 部分视图在Ajax调用后未完全重新渲染
- 20. React在渲染组件后重新渲染整个应用程序
- 21. react-redux connect不重新渲染组件,但道具得到更新
- 22. React-redux状态和道具已更新,但组件不在重新渲染
- 23. 为什么React调用未更改组件的渲染方法?
- 24. 防止Vue 2重新渲染数组?
- 25. React JSX:父组件的重新渲染是否会重新加载子组件?
- 26. JSF 2.0:延迟渲染(复合)组件的内容,直到AJAX调用重新渲染它
- 27. React/Flux seState在API调用后不重绘渲染组件
- 28. 使用a4j,你将如何重新渲染一个dojo组件?
- 29. 重新渲染用于打印的Reactjs组件
- 30. Visualforce链接组件用于重新渲染?
将你的代码粘贴到这里,请 –
看看这个:https://github.com/mobxjs/mobx-react/issues/281 – robertklep
具体就** urugator **解释。 https://github.com/mobxjs/mobx-react/issues/281#issuecomment-309410018 – felixmosh