我希望每次在React中以alert()
进行跟踪的Meteor订阅发生更改时,都显示一个模式对话框(例如withTracker
)。
我尝试使用Tracker.autorun
来跟踪更改,但是无法计算出将其放置在代码中的哪个位置。它似乎在Component
构造函数中不起作用,并且每次放置在render()
中都可以运行。
这是我的代码的轮廓:
class Foo extends Component {
render() {
return (
<h1>Example Header</h1>
{ this.maybeShowAlert() }
);
}
maybeShowAlert() {
// ONLY if bar has been updated
alert('bar has changed');
}
}
export default withTracker(() => {
Meteor.subscribe('bar')
return {
bar: Bar.findOne({})
};
})(Foo);
答案 0 :(得分:1)
以前从未使用过Meteor,但是如果您想响应状态/属性更改而做某事,那么componentDidUpdate()
是它的生命周期方法。例如
componentDidUpdate(prevProps) {
if (this.props.bar !== prevProps.bar {
// bar prop has changed
alert("bar changed);
}
}
答案 1 :(得分:1)