使用回调的React ref属性将DOM节点附加到我的类

时间:2016-11-03 08:08:11

标签: javascript reactjs

我目前在React 15.3.2中使用ref=字符串,不推荐使用。

因此,如果我按照文档使用回调:

ref={(input) => this.textInput = input}

然后,当组件安装时,这会将 DOM元素附加到我的班级。

耶!一个DOM元素。所以现在我不必这样做:

ReactDOM.findDOMNode(this.refs.input).value=''; // uncontrolled component

我认为反应的整个想法是不接触DOM ......

让我们假设我有一个复杂的TextInput组件,并且有一个InputError组件和<input type="text" - 这个TextInput组件根据props做了一些验证,并且它有一个状态可以帮助像显示错误。

在表单中备份,我想清除表单,因此TextInput有一个.clear()来重置其状态。 (我已经做错了吗?)

问题是,我无法访问任何子组件 React Objects ,除非我将字符串用作ref=,因此我无法调用clear()

是什么给出了?

我应该路由&#34;所有的沟通&#34;通过道具?一旦所有引用都是回调,this.refs有什么用呢?我可以通过.children或其他东西获取我的反应对象吗?关于这个问题的惯例是什么?

编辑:

显然我正在学习React,我想基本的问题是,对子组件上的EVER调用方法是不好(反应)?

有问题的组件可以在这里找到:

RegisterForm.jsx TextInput.jsx InputError.jsx

我通过道具找到困难/奇怪的工作要求是TextInput:&#34; onblur然后如果错误然后显示错误,则标记为错误,直到更改通过验证&#34;

0 个答案:

没有答案