如何使React订阅功能具有反应性?

时间:2016-09-13 12:10:26

标签: mongodb meteor reactjs

我正在尝试使用React和mongo为我的Meteor App实现Pagination。我通过将限制道具传递给我的订阅功能来完成此操作:

export default class BookListTable extends TrackerReact(React.Component) {

constructor(props) {
super(props);
var limit = this.props.LimitProp
limit = parseInt(limit) || 5;
this.state =   {
subscription: {
booksData: Meteor.subscribe("allBooks", {limit: limit})
}
}
///// rest of component

这在第一次反应组件渲染时效果很好但是当我更新道具时没有任何变化。我希望组件能够使用更新的限制属性重新渲染 - 但是这并没有发生。我错过了什么?

关于分页的任何相关信息都赞赏!

1 个答案:

答案 0 :(得分:3)

更新属性LimitProp时,使用LimitProp重新渲染组件,但不会再次调用构造函数。 您只复制LimitProp的值以限制,然后在创建组件时使用它,因此状态(suscription)在更改时不会更新。我认为你应该使用 componentDidMount

Component Specs and Lifecycle