我有一个属性为title
的React MaterialUI AppBar
组件,我根据window.location.pathname
返回的值进行更改。所以当页面/网址改变时,标题会随着它改变。看起来像下面的东西:在一个单独的组件中更新React组件的属性
<AppBar
title={this.renderTitle()}
/>
renderTitle() {
if (window.location.pathname === '/home'
return 'home';
} else if (window.location.pathname === '/login'
return 'login';
}
我遇到的是,renderTitle()
没有得到,如果不同的组件(所以不是AppBar
)导致页面/ URL变化执行的问题。
E.g.页面上的另一个单独的React组件会触发页面更改,我希望这个页面可以用renderTitle()
作为触发器,但它不会...因此title
属性不会更新。所以,如果我从/home
导航到/login
,会发生以下情况:
- 路径是
/home
- 用户按下运行功能,
submit()
,它是用来改变页面W /反应路由器按钮 renderTitle()
在这点上运行,但window.location.pathname
前一页submit()
改变页面仍然回到/login
window.location.pathname
现在正确设置为/login
,但为时已晚renderTitle()
已经运行
任何帮助表示赞赏,感谢