zoukankan      html  css  js  c++  java
  • react 父子传值

    import React from 'react';
    import ReactDOM from 'react-dom';
    import $ from 'jquery';
    //var $ = require('jquery');
    
    $("#hello").html("hello22888888888888888888888");
    
    class Animal {
        constructor(){
            this.type = 'animal'
        }
        says(say){
            console.log(this.type + ' says ' + say)
        }
    }
    
    let animal = new Animal()
    animal.says('hello') //animal says hello
    
    class Cat extends Animal {
        constructor(){
            super();
            this.type = 'cat'
        }
    }
    
    let cat = new Cat()
    let ii=(i)=>{return i+13+6};
    cat.says('hello:'+ ii(3)) //cat says hello
    
    
    function animals(...types){
        console.log(types)
    }
    animals('cat', 'dog', 'fish')
    
    
    
    let cat1 = 'ken';
    let dog = 'lili';
    let zoo = {cat1, dog};
    console.log(zoo) 
    
    
    
    class Content extends React.Component {
      render () {
        return ( 
            <div>
                <input ref="myInput" type="text" value={this.props.myDataProp} onChange={this.props.updateStateProp} /> 
                <h4>{this.props.myDataProp}</h4>
            </div>
        )
      }
    };
    
    class HelloMessage extends React.Component {
      constructor(props){
            super(props);
            this.state={
                value: 'Hello Runoob!',
                label:"hee"
            }           
      }
     
      handleChange(event) {
       // this.setState({value: event.target.value});
        let d= new Date();
        //this.refs.myInput2.focus();
        this.setState({
            value: event.target.value,
            label: event.target.value ? event.target.value : d.getTime()
        });
        console.log(this.state)
      }
      handleChange2(event) {
       // this.setState({value: event.target.value});
        let d= new Date();
        console.log('handleChange2:'+event.target.value)
      
      }
    
      render () {
        //var value = this.state.value;
        return (
            <div>
                <Content myDataProp = {this.state.value}  updateStateProp = {this.handleChange.bind(this)}></Content>
                <button onClick={this.handleChange2.bind(this)}>点我</button>
                <h4>label:{this.state.label}</h4>
    
                <CustomTextInput />
            </div>
        )
      }
    };
    
    
    class CustomTextInput extends React.Component {
      constructor(props) {
        super(props);
        this.focus = this.focus.bind(this);
        this.name="ssss";
      }
    
      focus() {
        // Explicitly focus the text input using the raw DOM API
        this.textInput.focus();
      }
    
      render() {
        // Use the `ref` callback to store a reference to the text input DOM
        // element in an instance field (for example, this.textInput).
        return (
          <div>
            <input type="text"  ref={(input) => { this.textInput = input; } } />
            <input type="button"  value="Focus the text input"   onClick={this.focus}  />
          </div>
        )
      }
    }
    
    
    
    
    ReactDOM.render(  <HelloMessage />,  document.getElementById('example'));
    
    //孙子,将下拉选项的值传给爷爷
    
    class Grandson extends React.Component {    
        render() {
            return (
                <div>性别:
                    <select onChange={this.props.handleSelect}>
                        <option value="男">男</option>
                        <option value="女">女</option>
                    </select>
                </div>
            )
        }
    };
    //子,将用户输入的姓名传给爹  
    //对于孙子的处理函数,父只需用props传下去即可
    class Child extends React.Component {   
    //var Child = React.createClass({
        render() {
            return (
                <div>
                    姓名:<input onChange={this.props.handleVal}/>
                    <Grandson handleSelect={this.props.handleSelect}/>
                </div>
            )
        }
    };
    //父组件,准备了两个state,username和sex用来接收子孙传过来的值,对应两个函数handleVal和handleSelect
    class Parent extends React.Component {  
       
      constructor(props) {
        super(props);
        this.state={       
                username: '',
                sex: ''        
        }
        
       }
    
    
        handleVal(event){
            this.setState({username: event.target.value});
        }
        handleSelect(event) {
            this.setState({sex: event.target.value});
        }
        render(){
            return (
                <div>
                    <div>用户姓名:{this.state.username}</div>
                    <div>用户性别:{this.state.sex}</div>
                    <Child handleVal={this.handleVal.bind(this)} handleSelect={this.handleSelect.bind(this)}/>
                </div>
            )
        }
    };
    ReactDOM.render(
      <Parent />,
      document.getElementById('root')
    );
  • 相关阅读:
    Python判断列表是否已排序的各种方法及其性能分析
    Python实现C代码统计工具(四)
    Python代码统计工具
    Python实现C代码统计工具(三)
    Python实现C代码统计工具(一)
    Python标准输出重定向
    为C函数自动添加跟踪语句
    Python2.7字符编码详解
    Python实现Linux命令xxd -i功能
    1124 Raffle for Weibo Followers (20 分)
  • 原文地址:https://www.cnblogs.com/yuri2016/p/6491838.html
Copyright © 2011-2022 走看看