react 父子传值

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

);

以上是 react 父子传值 的全部内容, 来源链接: utcz.com/z/383247.html

回到顶部