在回调

时间:2017-03-16 15:17:14

标签: reactjs ecmascript-6 pusher

我正在使用pusher-js订阅用户事件,并且我在回调中传递的信息存在问题而不会保持更新。我使用反应路由器,并有一个位置'我的组件上下文。

connect() {
    let {pusher, channelName, eventName} = this.props;

    let pusher_channel = pusher.subscribe(channelName);

    pusher_channel.bind(eventName, () => console.log(this.context.location.pathname));
}

出于演示目的,我只是控制台记录事件发生时用户所在的当前url路径名。当用户加载该应用程序时,此组件将加载并保持加载状态。问题是,如果用户导航到应用程序中的另一个页面并且有事件进入,则路径名不会反映用户所在的实际页面,而是用户在最初加载应用程序时所在的页面。

是否有办法保持回调更新已发生的任何上下文或道具更改?

1 个答案:

答案 0 :(得分:1)

更新上下文

不要这样做。

  

React有一个API来更新上下文,但它从根本上被打破了,你不应该使用它。

Read more

改为使用React Router location descriptors