当前位置:  开发笔记 > 编程语言 > 正文

React:如何访问this.props.children中的refs

如何解决《React:如何访问this.props.children中的refs》经验,为你挑选了1个好方法。

我想调用子组件的函数.
是否有可能从React中的this.props.children获取引用.

var ComponentSection = React.createClass({

    componentDidMount: function() {
      // How to access refs in this.props.children ?
      this.refs.inner.refs.specificPanel.resize();
    },

    render: function () {
        return (
          
{this.props.children}
); } }); var Panel = React.createClass({ resize: function() { console.log('Panel resizing'); }, render: function () { return (
Lorem ipsum dolor sit amet
); } }); var MainComponent = React.createClass({ render: function () { return ( ); } }); ReactDOM.render( , document.getElementById('container') );

我做了一个小小的演示:https://jsfiddle.net/69z2wepo/26929/

提前致谢



1> hon2a..:

Ref in React是组件与其所有者之间的关系,而您想要的是元素与其父元素之间的关系.父子关系是不透明的,父级只接收渲染中的子元素,永远不会访问已解析的组件.

在您的情况下,ref="specificPanel"建立从MainComponent到的链接Panel.如果你想调用Panelfrom的方法ComponentSection,它应该拥有Panels而不是作为子节点接收它们.

你总是可以创造性地React.Children.mapReact.createElement(手工克隆元素,从而从原始所有者那里窃取它们),但这会带来一些严重的潜在缺陷.更好的方法可能是重新考虑组件树的所有权结构.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有