最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

react 组件传值的三种方法

来源:懂视网 责编:小采 时间:2020-11-27 21:55:47
文档

react 组件传值的三种方法

react 组件传值的三种方法:整理 react 组件传值 三种方式 父组件向子组件传值(通过props传值) 子组件: class Children extends Component{ constructor(props){ super(props); } render(){ return( <div>这是:{this.props.name}
推荐度:
导读react 组件传值的三种方法:整理 react 组件传值 三种方式 父组件向子组件传值(通过props传值) 子组件: class Children extends Component{ constructor(props){ super(props); } render(){ return( <div>这是:{this.props.name}

整理 react 组件传值 三种方式

父组件向子组件传值(通过props传值)

子组件:

 class Children extends Component{
 constructor(props){
 super(props);
 }
 render(){
 return(
 <div>这是:{this.props.name}</div> // 这是 父向子
 )
 }
 }

父组件:

 class App extends React.Component{
 render(){
 return(
 <div>
 <Children name="父向子"/>
 </div>
 )
 }
 }

父组件向子组件传值(回调函数)

子组件

 class Children extends Component{
 constructor(props){
 super(props);
 }
 handerClick(){
 this.props.changeColor('skyblue') // 执行父组件的changeColor 并传参 必须和父组件中的函数一模一样
 }
 render(){
 return(
 <div>
 <div>父组件的背景色{this.props.bgcolor}</div> // 子组件接收父组件传过来的值 bgcolor
 <button onClick={(e)=>{this.handerClick(e)}}>改变父组件背景</button> // 子组件执行函数
 </div>
 )
 }
 }

父组件

 class Father extends Component{
 constructor(props){
 super(props)
 this.state = {
 bgcolor:'pink'
 }
 }
 bgChange(color){
 this.setState({
 bgcolor:color
 })
 }
 render(props){
 <div style={{background:this.state.bgcolor}}>
 // 给子组件传递的值 color 
 <Children bgcolor={this.state.bgcolor} changeColor={(color)=>{this.bgChange(color)}} /> 
 // changeColor 子组件的参数=color 当做形参
 </div>
 }
 }

兄弟组件传值(子传给父,父再传给另一个子)

子组件1

 class Children1 extends Component{
 constructor(props){
 super(props);
 }
 handerClick(){
 this.props.changeChild2Color('skyblue') 
 // 改变兄弟组件的颜色 把changeChild2Color的参数传给父
 }
 render(){
 return(
 <div>
 <div>children1</div>
 <button onClick={(e)=>{this.handerClick(e)}}>改变children2背景</button>
 </div>
 )
 }
 }

子组件2

 class Children2 extends Component{
 constructor(props){
 super(props);
 }
 render(){
 return(
 <div style={{background:this.props.bgcolor}}>
 // 从父元素获取自己的背景色
 <div>children2 背景色 {this.props.bgcolor}</div>
 // children2 背景色 skyblue
 </div>
 )
 }
 } 

父组件

class Father extends Component{
 constructor(props){
 super(props)
 this.state = {
 child2bgcolor:'pink'
 }
 }
 onchild2bgChange(color){
 this.setState({
 child2bgcolor:color
 })
 }
 render(props){
 <div>
 <Children1 changeChild2Color={(color)=>{this.onchild2bgChange(color)}} />
 <Children2 bgcolor={this.state.child2bgcolor} />
 </div>
 }
}

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

react 组件传值的三种方法

react 组件传值的三种方法:整理 react 组件传值 三种方式 父组件向子组件传值(通过props传值) 子组件: class Children extends Component{ constructor(props){ super(props); } render(){ return( <div>这是:{this.props.name}
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top