ajax call

时间:2017-06-02 13:58:14

标签: javascript reactjs redux

我希望能够在我的React应用程序的每个页面上设置文档标题。虽然我意识到我可以使用document.title但我不确定如何在依赖于通过异步调用获取的数据时设置标题。我使用Redux进行服务器提取。

在我的组件类中,我有:

componentDidMount() {
  this.props.dispatch(fetchJob(this.props.match.params.slug))
}

但是我不确定在通话结束后如何设置标题?

2 个答案:

答案 0 :(得分:0)

在调用完成后,您可以使用回调来设置文档标题,就像任何javascript承诺一样。有关详细信息,请查看Promise的then()方法:

  

then()方法返回Promise。它最多需要两个参数:Promise的成功和失败案例的回调函数。

所以你的代码是:

componentDidMount() {
  this.props.dispatch(fetchJob(this.props.match.params.slug)).then(() => {
    document.title = "Your title";
  })
}

答案 1 :(得分:0)

强烈建议使用middleware(您可以创建自己的)来管理以下内容:动画,日志记录,分析等。

所以你不会玷污你的应用程序的逻辑。

如果您希望它成为您的应用程序的一部分,请在componentWillReceivePropscomponentDidUpdate(我建议第一个)中的组件内部实现此类逻辑,并更新slug。当然,你应该在这部分代码中加入警戒,何时更新你的标题