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>
时间: 2025-01-01 15:16:33

React-组件嵌套-子组件通过委托向父组件传值的相关文章

vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> <child v-bind:my-message="parentMsg"></child>//注意传递参数时要用-代替驼峰命名,HTML不区分大小写 </div> 子组件: Vue.component('child', { // camelCase in Ja

react父子组件通讯-----&gt;下面用到的ref属性调用子组件的方法,可以实现子组件往父组件传递参数,可以通过在父组件的方法中调用子组件的方法,通过返回值来拿到值,也可以在子组件中,对数据处理完后,调用父组件传给子组件的参数或者方法,来实现传参,

<scripttype="text/babel"> var Child =React.createClass({ getInitialState: function() { return {color:"",childMsg:"我是子组件的信息"}; }, changeColor: function(e) { this.setState({color:e.target.getAttribute("data-color&quo

React子组件和父组件通信

React子组件和父组件通信包括以下几个方面: 子组件获取父组件属性:props或者state 子组件调用父组件的方法 父组件获取子组件的属性:props或者state 父组件调用子组件的方法 我们从下面这个例子来详细了解: 1 var Father=React.createClass({ 2 getDefaultProps:function(){ 3 return { 4 name:"父组件" 5 } 6 }, 7 MakeMoney:function(){ // 挣钱,供子组件调用

React篇-子组件调用父组件方法

react 中子组件调用父组件的方法,通过props: 父组件: <div className="tabC01"> <FTab tabCon={'tabCon01'} note={()=>this.isNote()}/></div> 子组件: <span className="wh01" >股票持仓(前十)<img src={require("../../image/[email protecte

React 父组件触发子组件事件

Parent组件 import React from "react"; import Child from "./component/Child"; class Parent extends React.Component { render() { return ( <div> 我是父组件 <Child childEvevnt={this.childEvevnt} /> <button onClick={this.triggerEvev

React Hook父组件获取子组件的数据/函数

我们知道在react中,常用props实现子组件数据到父组件的传递,但是父组件调用子组件的功能却不常用.文档上说ref其实不是最佳的选择,但是想着偷懒不学redux,在网上找了很多教程,要不就是hook的讲的太少,要不就是父子组件傻傻分不清,于是只好再啃了一下文档,就学了一下其它hook的api. 在这里我们需要用到useImperativeHandle这个api,其函数形式为 useImperativeHandle(ref, createHandle, [deps]) 其实这个api也是ref

react-父子子孙组件嵌套-context

方案一 import React from 'react' import ReactTypes from 'prop-types' /* // 最外层的父组件 export default class Com1 extends React.Component { constructor(props) { super(props) this.state = { color: 'red' } } render() { return <div> <h1>这是 父组件 </h1>

react ,父子调用子组件的方法与子组件调用父组件的方法

1.父组件调用子组件的方法给子组件的标签 定义一个属性,例如 ref="zizu" ------------- 父组件通过,this.refs.biaoji.dream('哈哈') //调用子组件的dream方法 2.子组件调用父组件的方法 2.1.首先父组件需要通过给子组件自定义属性,把方法传递给子组件.2.2.子组件通过this.props 接收父组件的方法,this.props.方法名称().这样就可以调用父组件的方法了 原文地址:https://www.cnblogs.com/

React-父组件访问子组件内部

父子组件通信 典型数据流:父组件向后代组件传递props,当props更新则接收对应值的后代组件触发重新渲染: 如果希望父组件能够访问子组件内部的信息则需要典型数据流之外的其他方法. ref React的ref表示对组件实例的引用 普通组件: 详情链接 详情链接 React的忠告: >>> 不要过度使用 Refs 你可能首先会想到在你的应用程序中使用 refs 来更新组件.如果是这种情况,请花一点时间,重新思考一下 state 属性在组件层中位置.通常你会想明白,提升 state 所在的