用户登录后,我想在标题中显示该名称。我一直在阅读如何传递道具,但是我看到的是当你从另一个组件访问另一个组件状态时,你再次发现了其他组件。如何在不渲染其他组件的情况下访问另一个状态?这里,我并不想渲染标题组件洞察我的登录组件,不知如何访问另一个组件状态而不呈现该状态?
- 在这里,我重定向这样我就可以在该州通过的(但因为我重定向到“/”作为主成分,而不是标题组件,我还是不知道如何访问它的成分标题
如果我不使用重定向,我将如何把它传递给另一个
class Header extends React.Component { render() { return ( <header> <nav> <p className="menuButton"><Link to='/'>Home</Link></p> <p className="menuButton"><Link to='/login'>Login</Link></p> </nav> </header> ) } }
登录组件:?
class Login extends React.Component {
constructor(props) {
super(props)
this.state = {
username:'',
email: '',
password: ''
}
this.loginFunc = this.loginFunc.bind(this)
}
loginFunc(){
... getting user data ...
this.setState({
username:response.firstname
})
...
history.push('/', { username: response.firstname });
history.go('/');
}
}
这是不可能的。为了获得数据登录,你也必须在页面上显示页眉。除非你使用像flux,redux这样的东西有一个很大的可共享状态。 – Nicholas
你应该使用像redux,flux这样的状态管理器。 –