function Welcome(props) {
console.log("Welcome Back");
}
class App extends React.Component {
constructor(props){
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(){
<Welcome />
}
render(){
return (
<div>
<button onClick={this.handleClick}>CLICK HERE </button>
</div>
);
}
}
Why function handleClick can't call outer function Welcome? is there any solution to this?
3 Réponses :
Appeler cette fonction, vous devez le faire comme suit:
function Welcome(props) {
return (<div>Welcome Back!</div>
}
class App extends React.Component {
constructor(props){
super(props);
this.state = {
showWelcomeMessage: false
}
this.handleClick = this.handleClick.bind(this);
}
handleClick(){
this.setState({showWelcomeMessage: true})
}
render(){
return (
<div>
{this.state.showWelcomeMessage ? <Welcome /> : null}
<button onClick={this.handleClick}>CLICK HERE </button>
</div>
);
}
}
@DRF J'ai mis à jour ma réponse pour inclure des scénarios potentiels pour vous.
Dans votre exemple de changement Bienvenue () code> suffit. Mais vous devez utiliser Camelcase pour définir des fonctions. Mais voici la version refoulée. import React from "react";
const welcome = () => {
console.log("Welcome Back");
};
export default function App() {
const handleClick = () => {
welcome();
};
return (
<div>
<button onClick={handleClick}>CLICK HERE </button>
</div>
);
}
Changer simplement l'appel de la fonction extérieure "Bienvenue", car ce n'est pas un composant:
handleClick(){
Welcome()
}
Je pense que vous manquez un point-virgule après le Bienvenue () code>.
Je pense que vous vous mélangez entre une fonction et un composant réactif. Si vous souhaitez appeler la fonction de bienvenue, écrivez
accueil (); code>