React:创建和引用动态组件引用

Joshuakcockrell

我试图跟踪任意数量的子组件。

通常,您只引用this.refs.refName,但就我而言,我需要跟踪任意数量的ref。

这是一个简洁的示例:

var NamesList = React.createClass({
  getAllNames: function() {
    // Somehow return an array of names...

    var names = [];
    this.refs.????.forEach(function (span) {
      names.push(span.textContent);
    })
  },

  render: function() {
    var names = ['jack','fred','bob','carl'];
    var spans = [];

    names.forEach(function (name) {
      spans.push(<span contentEditable={true} ref='?????'>name</span>);
    });

    return (
      <div>
        {spans}
      </div>;
    );
  }
});

ReactDOM.render(<NamesList></NamesList>, mountNode);

如果我错误地解决了问题,请告诉我。我希望得到的结果是将数据从RESTful服务传递到React组件,允许用户编辑该数据,并在需要时再次将其导出。我一直无法在React refs docs中找到答案。

Joshuakcockrell

以下将引用保留到称为的数组内的每个范围 this.spans

之所以可行,是因为每个跨度都使用addSpanRef方法将自身添加到refs数组中

getAllNames 然后遍历所有引用的范围并获取其textContent。

如果您有子组件(而不是跨度),则可以在那些子节点上调用方法!

var NamesList = React.createClass({

  // returns an array of names
  getAllNames() {
    return this.spans.map((span) => span.textContent);
  },

  // Add to our spans refs array
  addSpanRef (node) {
    this.spans = [...this.spans, node];
  },

  render: function() {
    this.spans = []; // create the spans refs array
    var names = ['jack','fred','bob','carl'];

    // Save a ref to "this" for the forEach loop
    var thisRef = this;
    names.forEach(function (name) {
      spans.push(<span contentEditable={true} ref={thisRef.addSpanRef}>name</span>);
    });

    return (
      <div>
        {spans}
      </div>;
    );
  }
});

ReactDOM.render(<NamesList></NamesList>, mountNode);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 Aurelia 中引用动态创建的组件

来自分类Dev

Java对象创建和引用

来自分类Dev

Java对象创建和引用

来自分类Dev

创建和引用单独的matplotlib图

来自分类Dev

如何引用动态创建的元素?

来自分类Dev

动态创建React组件

来自分类Dev

动态获取功能组件的引用-ReactJS

来自分类Dev

如何动态引用Vue等剃刀组件?

来自分类Dev

动态组件:通过引用调用元素

来自分类Dev

Angular2 动态获取组件引用

来自分类Dev

Kotlin:创建和引用真正的Java数组(用于JNA)

来自分类Dev

是否可以在列表理解中创建和引用对象?

来自分类Dev

如何在 WebAssembly 中创建和引用表?

来自分类Dev

创建动态组件 React (Native)

来自分类Dev

如何使用JS引用动态创建的div

来自分类Dev

在php中创建动态引用类型的对象

来自分类Dev

使用循环引用动态创建graphql模式

来自分类Dev

在Typescript中创建动态变量引用

来自分类Dev

在php中创建动态引用类型的对象

来自分类Dev

在html中引用动态创建的元素

来自分类Dev

如何正确设置对React组件的引用?

来自分类Dev

如何在React中引用组件的props?

来自分类Dev

我如何让它引用 React 组件?

来自分类Dev

React 将 DOM 引用暴露给父组件

来自分类Dev

react - 对作为提示传递的组件的引用

来自分类Dev

使用 useRef 钩子获取对 React 组件的引用

来自分类Dev

在 React 组件中聚焦输入字段 - 尝试创建引用时出现类型错误

来自分类Dev

如何在React上获取动态引用

来自分类Dev

在 componentWillUnmount 之后,React 子组件会丢失其父组件的引用