如何将username
as 道具从功能性无状态父级传递给功能性无状态子级到另一个有状态子级?
目前它显示undefined
在第一个孩子和第二个孩子中。
父组件:
let userName = 'Some UserName';
export default function App() {
return (
<Router>
<div>
<AuthButton />
<Route path="/" render={() => (
<Redirect to="/auth" />
)} />
<Route path="/auth" component={Login} />
<PrivateRoute
path='/home'
component={Home}
render={(props) => <Home userName={props.userName} />}
/>
</div>
</Router>
)
}
第一个子组件:
function Home(props) {
let userName = props.userName
console.log(userName); // SHOWS UNDEFINED!
return (
<Router>
<div>
<Header />
<Switch>
<div className="row cont">
<div className="card">
<div className="card-header">
Messages
</div>
<div className="card-body">
<MessengerApp userName={props.userName} />
</div>
</div>
</div>
</Switch>
<Footer />
</div>
</Router >
);
}
第二个子组件:
class MessengerApp extends React.Component {
constructor(props) {
super(props);
// set the initial state of the application
this.state = { username: this.props.userName };
console.log(this.state.username) // SHOWS UNDEFINED!
}
render(){
// JSX
}
我希望所有组件都将用户名记录为Some UserName