我再次阅读文档,我不清楚将 ref 定义为回调与字符串之间的区别:
<input ref={input => this._input = input} />
vs <input ref="input" />
有人可以向我澄清一下吗?
如果您将 ref 定义为字符串,它将在this.refs
对象上可用,例如this.refs.input
。
如果您定义了一个回调引用,您可以随意使用它,包括将它保存在this
如果您愿意)。
字符串 refs 最终将被弃用。 回调引用是稍后引入的,但它们涵盖了字符串引用的所有用例,并且没有它们的一些缺点。 我建议您在编写的新代码中始终使用回调引用。
将来,请考虑在 StackOverflow 上提问。 我们并没有正式将问题跟踪器视为一个支持论坛,不幸的是,GitHub 搜索的效果不如 StackOverflow 搜索,所以很可能有人会再次提出这个问题。 而如果您将其发布在 StackOverflow 上,您很可能会得到一个很好的答案,您的问题会被投票通过,并且将来会有更多人从中学习并找到它。
再次感谢@gaearon。 下次我会使用 StackOverflow。
没问题! 如果您认为我们可以更明显地推荐新代码中的回调引用模式,请随时向文档提交拉取请求。
最有用的评论
如果您将 ref 定义为字符串,它将在
this.refs
对象上可用,例如this.refs.input
。如果您定义了一个回调引用,您可以随意使用它,包括将它保存在
this
如果您愿意)。字符串 refs 最终将被弃用。 回调引用是稍后引入的,但它们涵盖了字符串引用的所有用例,并且没有它们的一些缺点。 我建议您在编写的新代码中始终使用回调引用。
将来,请考虑在 StackOverflow 上提问。 我们并没有正式将问题跟踪器视为一个支持论坛,不幸的是,GitHub 搜索的效果不如 StackOverflow 搜索,所以很可能有人会再次提出这个问题。 而如果您将其发布在 StackOverflow 上,您很可能会得到一个很好的答案,您的问题会被投票通过,并且将来会有更多人从中学习并找到它。