码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-12-19 00:00:48      阅读:1215      评论:0      收藏:0      [点我收藏+]

标签:

一、简述

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

<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>

 

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

标签:

原文地址:http://www.cnblogs.com/shamgod/p/5058383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!