javascript - 如何在reactjs中将值/对象从底部传输到顶部

标签 javascript reactjs

Reactjs 使数据注入(inject)变得非常简单,我们可以通过 this.propsthis.state 对象通过父元素注入(inject)数据。至于从下到上传递值,我们可以指定一个ref属性,然后使用dom方法获取或编辑它。

如果我想像这样传输一个对象怎么办:

var Editor = React.createClass({
  componentDidMount: function() {
    var editor = new CodeMirror(this.getDOMNode());
    this.editor = editor;
  },

  render: function() {
    return (
      <div className="editor"></div>
    );
  }
});

var App = React.createClass({
  render: function() {
    return (
      <Editor />
      <button onClick={this._save}></button>
    );
  },

  _save: function() {
    // now I'm confused how can I get `editor` object?
  }
});

我确实考虑过通过像:data-editor这样的属性来传输它,但是reactjs中是否有任何优雅或推荐的方法来处理这种情况?

提前致谢。

最佳答案

有多种方法可以做到这一点。一种是为元素分配一个 ref 并公开一个方法来获取编辑器或仅获取值:

var Editor = React.createClass({
  componentDidMount: function() {
    var editor = new CodeMirror(this.getDOMNode());
    this.editor = editor;
  },

  render: function() {
    return (
      <div className="editor"></div>
    );
  }

  getEditor: function() {
    return this.editor;
  }
});

var App = React.createClass({
  render: function() {
    return (
      <Editor ref="editor"/>
      <button onClick={this._save}></button>
    );
  },

  _save: function() {
    var editor = this.refs.editor.getEditor();
  }
});

关于javascript - 如何在reactjs中将值/对象从底部传输到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29804957/

相关文章:

javascript - JQUERY 1.4.4 脚本错误 - "Object required"- 在 IE 8 中执行加载但不在其他版本中时

javascript - preventDefault 在 Google Chrome 5 中不起作用

javascript - jQuery AJAX JSON 数据被扁平化

javascript - 如何使用 PHP 中的 Javascript 反转表行的结果

javascript - 如何处理 json

javascript - 为动态子项添加唯一键,而无需任何唯一键

reactjs - Apollo 客户端 useLazyQuery 未启动

javascript - React 上下文 - 'contextType' 未定义

javascript - 在 JSX 中添加空格的最佳实践

javascript - 为什么我在 for...of 循环中收到 'no-unused-vars' 警告,我该如何解决?