美文网首页
react父子组件相互传值

react父子组件相互传值

作者: 夜幕小草 | 来源:发表于2017-01-22 09:22 被阅读3335次

1、父组件------>子组件
通过父组件设置(state) --------->子组件 (this.props.show)

子组件

 <ModeView modeName="增 加1" contentName={contentName} show={this.state.showSubDlg} modeOff={this.rmvShow}

2、子组件 (someFn)------->父组件 (fn)
通过设置子组件的props ,然后父组件通过props传到fn

  someFn(curRowData) {
    this.props.pfn(curRowData); // 传给父组件了
  }
(<tr key={index} onClick={ () => {
          {/*alert("你好。2017.1.21----" + index );*/}
          //------------------------------获取一行数据---------------------------------
          curRowData = FeildData[index];
          this.someFn(curRowData);
          
          this.setState({
            curRowData:curRowData,
          },
            () =>{
              console.log("-----------------this1111.curRowData-----------------------");
              console.log(this.state.curRowData);
            }
          );
          console.log("-----------------curRowData-----------------------");
          console.log(curRowData);

        }
          
        } style={{ cursor: 'pointer' }}>
          {cells}
        </tr>);

父组件

  fn = (newState) => {
    this.setState(
      {
      someKey: newState },
      () => {
        console.log("---------龙哥-----------");
        console.log(this.state.someKey);
      }
    );
  }
<TableView key="TableViewHeader" pfn={this.fn} />

---------------------------------setState后边可以带一个函数------------------------------

         this.setState({
            curRowData:curRowData,
          },
            () =>{
              console.log("-----------------this1111.curRowData-----------------------");
              console.log(this.state.curRowData);
            }
          );
 //获取当前选中的一行数据
  // getCurRowData = (dataArr,dataCb) => {
  //   this.setState(
  //     {
  //       curRowData: dataArr,
  //     },
  //     dataCb()
  //   )
  // }

总结: 子组件传值给父组件
思想是回调函数:
也就是在父组件中,设置一个函数,这个函数就是操作回调的数据

<TableView key="TableViewHeader" pfn={this.fn} />
  //------------------接收子组件返回的修改页面数据---------------------
  fn = (curRowAllShowData,curRowAllData) => {
    this.setState(
      {
      xiuGaiShowData: curRowAllShowData ,
      xiuGaiRowAllData :curRowAllData ,
      },
    );
  }

子组件

(<tr key={index} onClick={ () => {
        //------------------------------获取一行数据---------------------------------
          curRowAllData = FeildData[index];
          curRowAllShowData = allShowData[index];
          {/*this.someFn(curRowAllShowData,curRowAllData);*/}
          this.props.pfn(curRowAllShowData,curRowAllData);
        }
        } style={{ cursor: 'pointer' }}>
          {cells}
        </tr>);

相关文章

  • 3.组件传值 - service传值

    angular 组件service传值 父子组件相互传值 子组件如果想返回去传值给父组件,父子组件相互传值需要使用...

  • react父子组件相互传值

    1、父组件------>子组件通过父组件设置(state) --------->子组件 (this.props....

  • angular组件之间的传值

    父子组件传值 父组件给子组件传值通过属性绑定的方式 子组件通过发送是事件给父组件传值 兄弟组件相互传值 兄弟组件通...

  • React入门(二)组件

    本节知识点 (1)React组件化 (2)React父子组件传值 (一)组件 在React中组件都是对应的一个个类...

  • react-父子组件间通信

    React-父子组件间通信 父组件传 值 给子组件, 传 方法 给子组件 子组件接收 值 ,触发父组件的 方法

  • react父子组件相互传参

    父组件传子: props 子传父:使用回调函数

  • Vue父子组件相互传值

    1. 父组件向子组件传值 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在...

  • vue父子组件相互传值

    一、父组件向子组件传值 1、父组件: 2、子组件: 二、子组件向父组件传值 1、父组件 2、子组件: 详情代码地址...

  • vue、react对比

    一、父子通信 1. 父组件通过props向子组件传值 vue:父组件 子组件接收 react:父组件: 子组件: ...

  • react 父子组件传值(兄弟传值)

    react中父子组件传值 父向子: 父组件通过自定义属性向子组件传值,子组件通过this.props.属性名接收子...

网友评论

      本文标题:react父子组件相互传值

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