javascript - Postal.js 订阅未接收来自其他 React 组件的帖子

标签 javascript reactjs webpack message-bus

我有两个分离的组件在一个页面上运行,并且希望使用 Postal.js 在单击一个组件到另一个组件时发送消息。

当单击第一个组件时,它会发布帖子:

postal.publish({
  channel: 'carts',
  topic: 'item.add',
  data: {
    quantity: newQuantity
  }
});

然后在第二个组件中,我在 componentDidMount() 中订阅该 channel :

postal.subscribe({
  channel: 'carts',
  topic: 'item.add',
  callback: this.handleStorageChange.bind(this)
});


当我向订阅的组件添加窃听时,它显示该 channel 已成功订阅,但从未显示来自其他组件的帖子:

{"channel":"postal","topic":"subscription.created","data":{"event":"subscription.created","channel":"carts","topic":"item.add"},"timeStamp":"2018-03-14T01:59:38.309Z"}

当我向发布组件添加窃听时,它显示消息已发布:

{"channel":"carts","topic":"item.add","data":{"quantity":34},"timeStamp":"2018-03-14T01:59:41.844Z"}

我在这里做错了什么?

最佳答案

我尝试创建一个最小的代码片段来在两个组件之间进行通信。我能够接收订阅组件上的数据。

您可以引用此片段,https://codesandbox.io/s/kxqw6npm05

关于javascript - Postal.js 订阅未接收来自其他 React 组件的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268760/

相关文章:

javascript - 按多个条件过滤数组

css - 情感 css 样式使用与示例相同的代码给我错误

javascript - 与 webpack 捆绑 - 脚本禁用错误

javascript - 是否有任何 jQuery 或 JavaScript 事件可以让我在元素出现在浏览器中之前隐藏它们

javascript - 收到错误 - 如果对上面的列使用非字符串访问器,则需要列 ID - React

Javascript 在单元格单击时修改网页内容

javascript - 保存文件时 JS/JSX 自动缩进错误

javascript - Webpack sequelize,sqlite3 错误找不到模块 sqlite3

javascript - 如何下载从HTTP :POST request via angular. js返回的二进制文件?

javascript - 我如何使用事件 @select 从 Vue.js 中的段落中选择一些文本?