Как я могу передать username
как реквизит от функционального родителя без состояния другому ребенку без состояния другому ребенку с состоянием?
В настоящее время он показывает 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