我正在使用react-draggabe。我喜欢通过将子组件包装到像'the number %d is incorrect' % 8
那样的另一个子组件中来添加功能的想法。
该组件管理自己的状态很酷。这样我就不必关心任何事情了。
但是:我需要在事件发生时获取被拖动元素的当前位置(例如,用户单击另一个子组件中的某个按钮)。 我知道我可以使用onStop-handler并将新位置保存在父元素的状态中。但这是一个问题:我复制了可拖动组件的状态,因为我也将它保存在父组件中。我不想这样做。
这样做的反应方式是什么?
我是rect的新手,我想这是一个很好的解释。
答案 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
从其父组件访问该值。