《React+Redux前端开发实战》—2.3.2 子组件向父组件通信

举报
华章计算机 发表于 2019/07/24 23:39:27 2019/07/24
【摘要】 本节书摘来自华章计算机《React+Redux前端开发实战》一书中的第2章,第2.3.2节,作者是徐顺发.

2.3.2  子组件向父组件通信

  虽然React数据流是单向的,但并不影响子组件向父组件通信。通过父组件可以向子组件传递函数这一特性,利用回调函数来实现子组件向父组件通信。当然也可以通过自定义事件机制来实现,但这种场景会显得过于复杂。所以为了简单方便,还是利用回调函数来实现。

  子组件向父组件通信示例:

  

  class Child extends React.Component {

    render (){

      return <input type="text" onChange={(e)=>this.props.handleChange

        (e.target.value)} />

    }

  }

  class App extends React.Component {

    constructor(props) {

    super(props);

      this.state = {

       data: ''

      }

    }

   

    handleChange = text => {

      this.setState({

        data: text

      })

    }

   

    render() {

      return (

       <div>

             <p>This message is from Child:{this.state.data}</p>

         <Child handleChange={ this.handleChange } />

       </div>

      )

    }

  }

  ReactDOM.render(

  <App/>,

  document.querySelector("#app")

  )

  

  上述代码中有两个组件:子组件Child和父组件App。子组件被父组件引用,在父组件中定义了一个handleChange事件,并通过props传给子组件让子组件调用该方法。子组件接收到来自父组件的handleChange方法,当子组件input框内输入的值Value发生变化时,就会触发handleChange方法,将该值传递给父组件,从而达到子对父通信。

注意:一般情况下,回调函数会与setState()成对出现。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。