React中父子组件传值

父组件向子组件传值
通过props,将父组件的state传递给了子组件。

父组件片段

constructor(props){
    super(props)
    this.state={
      message:"i am from parent"
    }
  }
  render(){
    return(
          <Child txt={this.state.message}/>
    )
  }
}

子组件片段

render(){
    return(
          <p>{this.props.txt}</p>
    )
  }

子组件向父组件传值
父子组件通信不仅可以传值,还可以传递方法,父组件将更新数据的方法拿给子组件使用,子组件将自身的数据传入这个方法并调用,以此来改变父组件的数据。

整块代码

import React from "react";
import ReactDOM from "react-dom";

class Parent extends React.Component {
  constructor(props) {
    super(props);
    this.Foo = this.Foo.bind(this);
    this.state = {
      name: "zzt"
    };
  }
  Foo(data) {
    this.setState({
      name: data
    });
  }
  render() {
    return (
      <div>
        <div>{this.state.name}</div>
        <Son data={this.Foo}/>
      </div>
    );
  }
}
class Son extends React.Component {
  handleClick = () => {
    this.props.data("zizhoutong");
  };
  render() {
    return <button onClick={this.handleClick}>change parent</button>;
  }
}
ReactDOM.render(<Parent />, document.getElementById("root"));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 8,529评论 1 33
  • 目前,react组件有三种写法,分别是es5的createClass写法,es6的class写法,以及statel...
    ZoomFunc阅读 1,855评论 0 1
  • 组件(Component)是Vue.js最核心的功能,也是整个架构设计最精彩的地方,当然也是最难掌握的。...
    六个周阅读 5,656评论 0 32
  • 首先 vue 组件化的一个框架。既然是组件化。那么一定存在组件和组件之间传值的问题 在讨论组件和组件怎么传值的问题...
    人话博客阅读 1,196评论 0 50
  • 国家土地和劳动的年产物,分为地租、劳动工资和利润。因此产生三个阶级:地主、劳动工人和资本家。国家一切阶级的...
    Towain阅读 493评论 0 0