Я создаю приложение с React and React Router, я начинаю с реагирования.Метод Asign Child для родительского элемента в реакции
У меня есть этот родительский класс:
class Home extends React.Component{
checkLogin(){
/*any logic..*/
}
/**
* La funcion render es obligatoria en cualquier componente React.
*/
render(){
this.checkLogin();
return(
<div>
<div className="body">
<div className="all-container">
<main className="container">
<div className="row">
<div className="col-md-12 text-center">
<Imagen src="/images/foodie.png" className="img-responsive logo" alt="Foodie" />
</div>
</div>
{this.props.children}
</main>
<div className="separador-footer"></div>
</div>
</div>
</div>
);
}
}
И этот ребенок «Войти» класс
class Login extends React.Component{
iniciarSesion(){
/*The login logic method */
}
render(){
return (
<form action="#">
<div className="row">
<div className="col-md-12">
<InputControl type="text" className="form-control" placeholder="Usuario" id="username"/>
</div>
</div>
<div className="row">
<div className="col-md-12">
<input type="password" className="form-control" placeholder="Contraseña" id="password"/>
</div>
</div>
<div className="row">
<div className="col-md-12 col-xs-12 col-sm-12 text-center">
<ul className="list-unstyled lista-links">
<li>
<Link to={Rutas.cambioClave}>Olvido su contraseña</Link>
</li>
<li>
<Link to={Rutas.registro}> Crear nueva Cuenta</Link>
</li>
</ul>
</div>
</div>
<BtnLink onClick={()=>this.iniciarSesion()} label="Iniciar Sesión"/>
</form>
);
}
}
Дело в том, мне нужно создать еще 3 или 4 «дочерние компоненты» с тем же «шаблон» и для каждого компонента мне нужен компонент BtnLink
, который должен будет вызвать собственный дочерний логический метод (как «login», «register», «logout»). По этой причине, я думаю, что лучше поставить этот компонент BtnLink
в родительский компонент, а не повторять код. Затем, когда маршрут изменяется и с этим изменением, дочерний компонент модифицирует компонент BtnLink
и изменяет его метод onClick
для динамического добавления текущего метода дочернего компонента, который может мне понадобиться. Можно ли сделать это?