【发布时间】:2017-01-01 04:48:14
【问题描述】:
所以我有 2 个出版物,teams.dashboard 和 boards.board,问题是,一旦 Boards 字段已经从 teams.dashboard 加载 出版物 我想从我拥有的第一个 Board 中加载 boards.board 出版物以及 boardId,例如:Boards.find().fetch()[ 0]._id。
道具准备好后,是否有任何 React 回调或 Meteor 方式来订阅它?因为出于某种原因,我使用几个“ifs”订阅了 componentDidUpdate 中的数据,并且 websocket 返回:
[{\"msg\":\"sub\",\"id\":\"R74JgCvWX8B8uphoZ\",\"name\":\"boards.board\",\"params\":[\"F4MuZ2jX8YKcf8fMr\"]}"]
但下一条消息是:
["{\"msg\":\"unsub\",\"id\":\"R74JgCvWX8B8uphoZ\"}"]
由于某种原因,发布自动取消订阅... 随后,有两条 websocket 消息说如下
[{\"msg\":\"changed\",\"collection\":\"Boards\",\"id\":\"F4MuZ2jX8YKcf8fMr\",\"fields\":{\"field1\":false,\"field2\":[],\"field3\":false,\"field4\":[],\"field5\":[]}}"]
[{\"msg\":\"changed\",\"collection\":\"Boards\",\"id\":\"F4MuZ2jX8YKcf8fMr\",\"cleared\":[\"field1\",\"field2\",\"field3\",\"field4\",\"field5\"]}"]
【问题讨论】:
-
您可能会发现reywood:publish-composite 包对此类连接很有用。这将允许您在一个出版物中发布两个集合中的相关文档。
-
我正在使用 publishComposite,我想要做的是,当我单击一个按钮时,订阅 board.board 这是一个不同的出版物,这已经有效。问题是我想从 createContainer 自动订阅并设置 this.board.state 但这似乎是不可能的......
标签: javascript meteor reactjs subscriptions