美文网首页
React如何获取子组件的方法和数据

React如何获取子组件的方法和数据

作者: LastStranger | 来源:发表于2019-11-01 17:29 被阅读0次

最新答案(React-hooks获取函数式子组件内容):

// 子组件
import React, {useImperativeHandle} from 'react';

const FunctionComponent = React.forwardRef((props, ref) => {
    useImperativeHandle(ref, () => ({
        click: handleClick,
        ref: ref.current,
    }));
    const handleClick =() => {
        console.log('hulala')
    };
    return (
        <div onClick={handleClick} ref={ref} style={{width: '100px'}}>
            hulala
        </div>
    );
});

export default FunctionComponent;

// 父组件
const App = () => {
    const Dd = useRef();
    useEffect(() => {
        console.log(Dd, 'Dd');
    }, []);
    return (
        <FunctionComponent ref={Dd}/>
    )
};

以下为很久以前的原答案,虽然好理解,但是不方便也不利于代码维护,不推荐下面的方法,还是用Ref吧.

先上代码:

        <OperateStudentForm
          onGetFunc={func => {
            this.handleOpenModal = func;
          }}
          onSearch={this.handleSearch}
        />
      </Card>
    );
  }
}

export default StudentManagement;
    componentDidMount() {
      this.props.onGetFunc(this.handleOpenModal);
    }

    handleOpenModal = data => {
      this.setState({
        visible: true,
        data,
      });
    };
  1. 在子组件初始化的时候,将方法名传递给父父组件,父组件通过接受子组件传递过来的func,绑定到父组件的this上,这样就能随意调用子组件的方法了.
  2. 注意,调用this.handleOpenModal尽量不要写在元素内联里面,最好用一个方法包一层,不然可能会出现调用不到这个函数的情况.
  3. 不太喜欢网上的各种ref的方式调用,会使代码结构混乱,而且非常不React.
  4. react-hooks时代应该不是这样玩的,应该会更优雅,还还没怎么研究

I believe your apartment is on fire

相关文章

  • react中父组件调用子组件的方法

    react中父组件调用子组件的方法 最近项目中用到了react,需要在父组件中调用子组件的某个方法,那么如何获取到...

  • 父组件获取子组件的数据和方法

    #调用子组件的时候定义一个 ref #如何使用子组件数据和方法 #子组件主动获取父组件里的属性和方法

  • ReactJS_11 React AJAX

    React 组件的数据可以通过 componentDidMount 方法中的 Ajax 来获取,当从服务端获取数据...

  • React如何获取子组件的方法和数据

    最新答案(React-hooks获取函数式子组件内容): 以下为很久以前的原答案,虽然好理解,但是不方便也不利于代...

  • 用vue-cli开发项目时候的一些工作笔记

    1、父组件: 获取子组件的方法属性:this.refs.headerChild.方法子组件获取父组件的数据: 2...

  • 父组件主动获取子组件的数据和方法

    父组件主动获取子组件的数据和方法 1..调用子组件的时候 定义一个ref 2.在父组件里面通过 子组件主动获取父组...

  • 父组件主动获取子组件的数据和方法

    父组件主动获取子组件的数据和方法 1..调用子组件的时候 定义一个ref 2.在父组件里面通过 子组件主动获取父组...

  • vue 1.x 组件数据传递

    本文章主要讲了组件如何进行数据的传递,从简单的组件里面的数据如何显示,子组件里面的数据显示,子组件获取父组件的数据...

  • vue组件之间的通信

    父组件从子组件获取数据: 1.ref方式,把子组件当作一个对象,通过对象的方法获取数据,前提是子组件中提供了获取数...

  • 2017.11.23

    React如何在父组件里面调用子组件的方法在父组件中引用子组件时,给子组件定义ref='name',父组件通过th...

网友评论

      本文标题:React如何获取子组件的方法和数据

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