• React-组件嵌套-子组件通过委托向父组件传值


    一、简述

    父组件嵌套子组件,父组件的处理函数通过属性的方式赋值组子组件(

    <GenderSelect handleSelect={this.handleSelect}></GenderSelect>

    ),子组件通过触发事件,委托调用父组件的处理函数,从而实现把值传给父组件(return <select onChange={this.props.handleSelect}>,

    handleSelect: function(event) {
    this.setState({gender: event.target.value})
    }

    二、代码

     1 <!DOCTYPE html>
     2 <html lang="zh-cn">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>父子关系</title>
     6 </head>
     7 <body>
     8     <script src="./react-0.13.2/react-0.13.2/build/react.js"></script>
     9     <script src="./react-0.13.2/react-0.13.2/build/JSXTransformer.js"></script>
    10     <script type="text/jsx">
    11         var GenderSelect = React.createClass({
    12             render: function() {
    13                 return <select onChange={this.props.handleSelect}>
    14                 <option value="0"></option>
    15                 <option value="1"></option>
    16                 </select>
    17             }
    18         })
    19         var SignupForm = React.createClass({
    20             getInitialState: function() {
    21                 return {
    22                     name: '',
    23                     password: '',
    24                     gender: '',
    25                 }
    26             },
    27             handleChange: function(name, event) {
    28                 var newState = {}
    29                 newState[name] = event.target.value
    30                 this.setState(newState)
    31             },
    32             handleSelect: function(event) {
    33                 this.setState({gender: event.target.value})
    34             },
    35             render: function() {
    36                 console.log(this.state)
    37                 return <form>
    38                 <input type="text" placeholder="请输入用户名" onChange={this.handleChange.bind(this, 'name')} />
    39                 <input type="password" placeholder="请输入密码" onChange={this.handleChange.bind(this, 'password')} />
    40                 <GenderSelect handleSelect={this.handleSelect}></GenderSelect>
    41                 </form>
    42             }
    43         })
    44         React.render(<SignupForm></SignupForm>, document.body);
    45     </script>
    46 </body>
    47 </html>
  • 相关阅读:
    Joomla-2.5安装配置
    Drupal-7.x安装配置
    【Linux导论】Linux发行版安装(Linux Distribution Installation)
    【深度学习】卷积神经网络(Convolutional Neural Networks)
    【Linux导论】Linux引导流程(The Boot Process)
    【Linux导论】Linux文件系统基础(Linux Filesystem Basics)
    【Linux导论】Linux术语(Linux Terminology)
    【Linux导论】Linux发行版本(Linux Distributions)
    【Linux导论】Linux哲学(Linux philosophy)
    hashCode equals
  • 原文地址:https://www.cnblogs.com/shamgod/p/5058383.html
Copyright © 2020-2023  润新知