react实现父传子子传父

父组件:

父传子:父:<Child name={...对象}/>

    子:this.props.key

  render() {
    //解构
    let { data } = this.state;
    return (
      <ul>
        {
          data.map((item, index) => {
            return <List key={index} {...item} change={index => this.change(index)} />
          })
        }
      </ul>
    )
  }

  change(id) {
    //子传父
    let newarr = this.state.data;
    newarr.filter(item => {
      if (item.id == id) {
        item.flag = !item.flag
      }
    })
    //刷新数据
    this.setState({
      data:newarr
    })
  }

子组件:

 render() {
        return (
            <li>
                <img src={this.props.img}  />
                <span className="name">{this.props.name}</span>
                <button onClick={() => { this.props.change(this.props.id) }} className={this.props.flag ? "grey" : "green"}>          {this.props.flag ? "已添加" : "添加"}</button>
            </li>
        )
    }

原文地址:https://www.cnblogs.com/fairylee/p/10996300.html

时间: 2024-07-31 16:39:43

react实现父传子子传父的相关文章

vue,一路走来(12)--父与子之间传参

今天想起一直没有记录父组件与子组件的传参问题,这在项目中一直用到. 父向子组件传参 Index.vue父组件中 <component-a :msgfromfa="(positionnow)"></component-a> import componentA from './components/componentA' export default{ name:'Index', data(){ return{ positionnow:'' } } } compon

Vue 父组件向子组件传值,传方法,传父组件整体

父子组件传值 1.父组件调用子组件时绑定属性,例如-> :title="title" 2.子组件中在props中声明title:props:['title','msg'] 3.就可以在子组件中引用title Tips:避免父子组件传值时命名冲突 父子组件传方法方式一样 1.父组件调用子组件时绑定属性,例如-> :run="run" 2.子组件中props中声明run:props:['title','msg','run'] 3.子组件中的button引用r

Flutter路由跳转父级页面向子页面传参及子页面向父级页面传参

Flutter中页面通过路由跳转传参主要分两种,一种是通过push()跳转时根据设定的参数进行传参,另一种是通过pop()返回时进行传参. 父级页面向子页面push()传参 假设从A页面跳到B页面可能需要携带参数userName和userAge这两个参数,那么需要在B页面先设置这两个参数名:假设userName必须填而userAge非必需,那么可以通过设置@required其为必填选项: class PageB extends StatefulWidget { @override final u

vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this.$emit("父组件上的方法名",a)     /-------a------/代表需要传递的参数        兄弟组件通讯   需要创建一个公共的vue 实例, new vue()    在main.js里 书写Vue.prototype .com=new vue()    通过pr

vue中 的传值问题 父传子和子传父

vue中 关于$emit的用法 1.父组件可以使用 props 把数据传给子组件.2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运行 fn: 例如:子组件: <template> <div class="train-city"> <h3>父组件传给子组件的toCity:{{sendData}}</h

js父页面调用子页面数据时,子页面通过父页面传过来的参数回调父页面具体方法

今天写代码时发现同一页面多个地方需要调用同一个子页面,如果多个方法调用时,同一子页面回调父页面方法则会出问题,所以查了下资料,让这个功能通用化,根据具体方法回调具体父页面方法,顺便总结一下,希望以后可以有用,或许可以帮助需要帮助的人 这里使用 eval() 函数 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 父页面调用子页面的路径(子页面的路径)如下 http://localhoust:8080/oss-portlet/html/util/area

vue--父组件向子组件传参--父组件定义v-bind:参数名--子组件接收props----子组件调用父组件的方法(子组件向父组件传参)父组件@事件名称--子组件接收this.$emit

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

react native 之子组件和父组件之间的通信

react native开发中,为了封装性经常需要自定义组件,这样就会出现父组件和子组件,那么怎么在父组件和子组件之间相互通信呢,也就是怎么在各自界面push和pop.传值. 父组件传递给子组件: 父组件: 在主组件里面,使用通过写一个子组件的属性,直接把值或者navigator传给子组件即可.如下20行: 1 /** 2 * Sample React Native App 3 * https://github.com/facebook/react-native 4 * 父组件传递给子组件 5

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