获取子组件的状态

时间:2016-08-24 14:49:00

标签: reactjs

我正在使用react-draggabe。我喜欢通过将子组件包装到像'the number %d is incorrect' % 8那样的另一个子组件中来添加功能的想法。 该组件管理自己的状态很酷。这样我就不必关心任何事情了。

但是:我需要在事件发生时获取被拖动元素的当前位置(例如,用户单击另一个子组件中的某个按钮)。 我知道我可以使用onStop-handler并将新位置保存在父元素的状态中。但这是一个问题:我复制了可拖动组件的状态,因为我也将它保存在父组件中。我不想这样做。

这样做的反应方式是什么?
我是rect的新手,我想这是一个很好的解释。

1 个答案:

答案 0 :(得分:7)

您可以使用refs

执行此操作
var Foo = React.createClass({       
  componentDidMount() {
    console.log(this.refs.bar.baz) // "qux"  
  },
  render() {
    return (
      <div>
        <Bar ref="bar"  />
      </div>
    );      
  }
});



var Bar = React.createClass({
  getInitialState: function() {
    return {baz: 'qux'};
  }
});

我为你做了一个fiddle,其中有一个从子组件访问状态的例子。有一个组件递增一个值,它的兄弟组件呈现它,通过props / refs从其父组件访问该值。