美文网首页
React父传子和子组件触发修改父组件修改数据

React父传子和子组件触发修改父组件修改数据

作者: 码枫云 | 来源:发表于2020-01-08 20:17 被阅读0次

子组件是不可以直接修改props的,只能通过触发父组件的方法来修改
父传子通过子组件标签上定义属性后传入this.state的数据

import React, { Component } from 'react'

class Child extends Component{
    render() {
        return (
            <div style={{display:this.props.isShow===true? 'block' : 'none'}}>
    <p style={{color:this.props.fontColor}}>{this.props.title}</p>{/* 通过this.props接收传过来的值 */}
                <button onClick={this.props.change}>子组件按钮</button> {/* 通过父组件传进来的方法来修改数据 */}
                <button onClick={()=>this.props.add(2)}>累加2</button>
                <ul>
                    {
                        this.props.arr.map((item,index)=>{
                        return <li key={index}>{item}</li>
                        })
                    }
                </ul>
            </div>
        )
    }
}

export default class app5 extends Component {
    constructor(props){
        super(props)
        this.state = {
            person:['虚竹','段誉','王语嫣'],
            isShow:true,
            num:20
        }
    }
    change(){
        this.setState({
            isShow:!this.state.isShow /* 使用this.setState 将this.state.isShow取反 */
        })
    }
    add(num){
        this.setState({
            num:this.state.num + num
        })
    }
    render() {
        return (
            <div>
                <p>父组件的文字</p>
        <p>{this.state.num}</p>
                <button onClick={this.change.bind(this)}>切换</button>{/* 添加事件 修改this.state里面的isShow,实现父传子的显示与隐藏 */}
                <hr/>
                <Child title='你好世界' 
                fontColor="pink" 
                arr={this.state.person} 
                isShow={this.state.isShow}  /*  子组件定义属性把父组件的值通过this.state传进去 */
                change={this.change.bind(this)}
                add={(num)=>this.add(num)}
                /> {/* 把父组件方法传入子组件,传值需要写箭头函数需要子组件通过props来接收和执行 */}
               
            </div>
        )
    }
}

相关文章

  • React父传子和子组件触发修改父组件修改数据

    子组件是不可以直接修改props的,只能通过触发父组件的方法来修改父传子通过子组件标签上定义属性后传入this.s...

  • react学2-父子组件通信

    react单项数据流动 父组件可以传递数据给子组件 但是这样如果想在父组件修改name的属相值,子组件也同步修改。...

  • vue父子传参场景集锦(一)

    父传子数据,子修改数据,父不改 场景: 列表(父组件)点击,弹出表单并传递当前行数据到表单(子组件),表单使用双向...

  • refs and the dom

    React数据流是单向的,通过props由父组件向子组件传递数据,如果要修改子组件,需要修改props来重新渲染子...

  • vue2.0子组件能不能修改父组件传递过来的数据

    父组件传弟子组件是单向数据绑定; 子组件不能直接修改父组件的数据,可以间接修改数据 1:子组件通过computed...

  • Vue父子组件之间实现数据双向传递的三种方法

    一、子组件通过props获取到父组件数据,修改数据后,通过在父组件中监听子组件的自定义事件,在子组件事件触发时将修...

  • vue父子组件的双向绑定

    父组件可以向子组件传值,修改。同时,子组件也可以向父组件传值和修改 父组件的分析:父组件使用v-model实现双向...

  • Vue.js 组件通信

    一.、父传子 父组件引入子组件子组件 在 props 定义需要接收的数据 二、子传父 父组件引入子组件子组件 t...

  • Vue 父组件 传值 给子组件

    父传子 父组件: 引入子组件 子组件使用 自定义属性接收 父组件的数据 子组件: prop接收父组件的值 (推荐使...

  • Vue 的单项数据流

    数据总是从父组件传到子组件,子组件没有权利修改父组件传过来的数据,只能请求父组件对原始数据进行修改。这样会防止从子...

网友评论

      本文标题:React父传子和子组件触发修改父组件修改数据

      本文链接:https://www.haomeiwen.com/subject/hdzsactx.html