流星和reactJS - 如何使儿童成分反应?

时间:2015-12-19 21:06:03

标签: meteor reactjs reactive-programming

我有一个子组件依赖于另一个小部件来设置它应该订阅的数据。如此有效的动态订阅。

getMeteorData() { var topicName = this.context.topicName; var handle = Meteor.subscribe('RebotTopicDetail', {name: topicName}); ...

如果topicName更改,我想重新订阅新数据。

这样做的最佳方式是什么?

topicName由另一个组件设置,我使用上下文在对象之间传递它。 https://facebook.github.io/react/docs/context.html 我可以看到context.topicName正在改变,因为我正在显示它。 但它并没有触发流星数据中的反应计算重新运行。

有没有办法在getMeteorData中的变量上声明Deps? 我的理解是,这是一个反应块,因此更改将导致getMeteorData块重新运行。

https://react-in-meteor.readthedocs.org/en/latest/meteor-data/

我也尝试在topicName中传递props,但这也不会触发反应更新。

其他人来到这里,相关主题

1 个答案:

答案 0 :(得分:0)

编辑:道具似乎是被动的

```

  getMeteorData() {
    var topicName = this.props.topicName;
    var handle = Meteor.subscribe('RebotTopicDetail', {name: topicName});


/// and in the container passing in a prop
<TriggerList topicName={this.state.topicName} />

```

的工作原理。不确定使用容器项目的状态是否与它有关。