Maison  >  Article  >  interface Web  >  Comment transmettre des valeurs aux composants frères dans React

Comment transmettre des valeurs aux composants frères dans React

藏色散人
藏色散人original
2020-12-21 10:01:382361parcourir

La méthode de transmission des valeurs des composants frères dans React : ouvrez d'abord le fichier frontal correspondant ; puis définissez un composant parent commun pour transmettre les valeurs, puis créez un composant enfant et transmettez les données au parent ; composant; enfin créer le parent Le composant reçoit la valeur et la transmet à un autre sous-composant.

Comment transmettre des valeurs aux composants frères dans React

L'environnement d'exploitation de ce tutoriel : Système Windows 7, version React17.0.1, cette méthode convient à toutes les marques d'ordinateurs.

Recommandé : "Tutoriel vidéo React"

Valeur transmise du composant homologue React

Comment transmettre des valeurs aux composants frères dans React

Dans React, les composants frères eux-mêmes n'ont aucune relation. Si vous souhaitez avoir une relation, vous ne pouvez transmettre des valeurs que via le composant parent commun. Un composant enfant transmet les données au composant parent, et le composant parent reçoit la valeur. et le transmet à un autre enfant Component

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="box"></div>
<script type="text/babel">
//子组件向父组件传值,父组件接收再传递给另一个子组件
class Childone extends React.Component{
constructor(props){
super(props);
this.state={color:"lightblue"}
}
handlecolor(){
this.props.fn("red");             
//在触发方法中通过props添加一个新的fn方法,并且将颜色参数red传入父组件
this.setState({color:"red"});
}
render(){
return(
<div>
<h4 style={{color:this.state.color}}>我是第一个子组件</h4>
<button onClick={this.handlecolor.bind(this)}>改变第二个子组件颜色</button>       
//给第一个子组件绑定一个方法,点击就触发,注意要绑定this
</div>
)
}
}
class Childtwo extends React.Component{
constructor(props){
super(props);
}
render(props){
return(
<h4 style={{color:this.props.co}}>我是第二个子组件</h4>               
//利用prop属性从外界即父组件获取参数,不能用state,state是内部使用的
)
}
}
class Parents extends React.Component{
constructor(props){
super(props);
this.state={childtwocolor:"lightblue"};
}
change(color) {
this.setState({childtwocolor: color});
}
render(props) {
return (
<div>
<Childone fn={(color)=>{this.change(color)}}></Childone>         
//第一个子组件的方法fn,将参数red传入函数change中,更新父组件本身的颜色childtwocolor
<Childtwo co={this.state.childtwocolor}></Childtwo>                   
//第二个子组件获取父组件本身的颜色,当父组件颜色更新时,它也会随之更新
</div>
)
}
}
ReactDOM.render(
<Parents />,
document.getElementById(&#39;box&#39;)
);
</script>
</body>
</html>
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn