私はReactとReact Routerでアプリケーションを作成していますが、私はreactで始まります。子要素の親要素に対するメソッドの反応
私は、この親クラスを持っている:
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
コンポーネント( "ログイン"、 "レジスタ"、 "ログアウト")として独自の子論理メソッドを呼び出す必要があります。このため、このコンポーネントを親コンポーネントに入れて、コードを繰り返さない方が良いと思います。ルートが変更され、その変更によって子コンポーネントがBtnLink
コンポーネントを変更し、そのonClick
メソッドを変更して、必要な現在の子コンポーネントメソッドを動的に追加します。これは可能ですか?