我有这个组件,我将this.props.route更改为通过redux重定向。 在这种情况下,我会从' / aaa'重定向。到' / bbb'而且它没有重定向页面。
我测试了this.props.route是否通过在代码中添加console.log来获得更改并且道具正在更新但是Redirect似乎无法正常工作。
基本上,Component {aaa}从redux更新this.state.route。 Redux将状态传播到prop。因此,RedirectHandler组件被重新呈现,但Redirect没有被触发。
这不起作用。
RedirectHandler组件
render() {
console.log('rerender', this.props.route); 1.) '/aaa' 2.) '/bbb'
return(
{ this.props.isAuthenticated && <Redirect to={this.props.route} /> }
<Route exact path="/" component={aaa} />
<Route exact path="/aaa" component={aaa} />
<Route exact path="/bbb" component={bbb} />
)
}
这是有效的,
render() {
return(
{ this.props.isAuthenticated && this.props.route === '/bbb'
&& <Redirect to={this.props.route} /> }
{ this.props.isAuthenticated && <Redirect to={this.props.route} /> }
<Route exact path="/" component={aaa} />
<Route exact path="/aaa" component={aaa} />
<Route exact path="/bbb" component={bbb} />
)
}
问题是,如果props.route正在更新,为什么它不会将我重定向到指定的路线?
<Redirect to={this.props.route} />
OR
为什么第一个块在第二个块没有工作时不起作用? :/