React

事件对象: 

import React,{Component} from 'react'

class Index extends Component{
    constructor(props){
        super(props)
        this.state = {
            msg:'张学友'
        }
    }
    getMsg=(event)=>{
        alert(this.state.msg);
    event.target.value;//获取值
    let val = this.refs.username.value //根据ref获值
    console.log(event.target); //获取当前Dom节点 event.target.style.background = 'red' ; //改变当前Dom的背景色
       console.log(event.target.getAttribute('aid')); //获取当前Dom属性 } setMsg=()=>{ this.setState({ msg:'刘德华' }) } render(){ return( <div> {this.state.msg} <button ref="username" aid='1111' onClick={this.getMsg}>点击获值</button> <br /> <button onClick={this.setMsg}>改变值</button> </div> ) } } export default Index

 2.父子组件传值

  父组件可以传属性 方法给子组件,还可以本整个父组件传给子组件

  父组件代码:

  

setv=(result)=>{
        this.setState({
            msg:result
            
        })
        alert(result)
    }
    render(){
        return(
            <div>
                {this.state.msg}
                <button aid='1111' onClick={this.getMsg}>点击获值</button>
                <br />
                <button onClick={this.setMsg}>改变值</button>
                <br />
                <hr></hr>
                <Son title='父组件定义的标题' setv={this.setv} news={this} />
            </div>
        )
    }

  子组件代码

render(){
        return(
            <div>
                <p>{this.state.title}</p>
                <button onClick={this.props.news.setv.bind(this,'这是子组件传过来的')}>给父组件传值</button>
                <button onClick={this.props.news.getRun}>执行父组件的方法</button>
            </div>
        )
    }

  父组件获取子组件的值

 getSonTitle=()=>{
        alert(this.refs.son.state.title);
    }
    render(){
        return(
            <div>
                {this.state.msg}
                <button aid='1111' onClick={this.getMsg}>点击获值</button>
                <br />
                <button onClick={this.setMsg} >改变值</button>
                <br />
                <hr></hr>
                <Son title='父组件定义的标题' setv={this.setv} news={this} ref='son' />
                <br />
                <hr></hr>
               
                <button onClick={this.getSonTitle}>获取子组件的值</button>
            </div>
        )
    }

  4.默认属性

  
Son.defaultProps={
    title:'默认标题'
}
//验证传值的类型
import PropTypes from 'prop-types'
Son.propTypes={
    title:PropTypes.string
}

  

posted @ 2020-03-23 11:02  FinnYY  阅读(124)  评论(0编辑  收藏  举报