我希望能够在我的React应用程序的每个页面上设置文档标题。虽然我意识到我可以使用document.title
但我不确定如何在依赖于通过异步调用获取的数据时设置标题。我使用Redux进行服务器提取。
在我的组件类中,我有:
componentDidMount() {
this.props.dispatch(fetchJob(this.props.match.params.slug))
}
但是我不确定在通话结束后如何设置标题?
答案 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(您可以创建自己的)来管理以下内容:动画,日志记录,分析等。
所以你不会玷污你的应用程序的逻辑。
如果您希望它成为您的应用程序的一部分,请在componentWillReceiveProps
或componentDidUpdate
(我建议第一个)中的组件内部实现此类逻辑,并更新slug。当然,你应该在这部分代码中加入警戒,何时更新你的标题