【发布时间】:2015-01-31 18:00:25
【问题描述】:
我正在尝试通过 React 使用 ref 属性。我的浏览器出现一个奇怪的错误,我无法弄清楚问题所在。
谁能向我解释为什么我会收到此错误:
错误:Invariant Violation: addComponentAsRefTo(...): 只有 ReactOwner 可以有 refs。这通常意味着您正在尝试将 ref 添加到没有所有者的组件(即不是在另一个组件的
render方法中创建的)。尝试在一个新的顶级组件中渲染这个组件,该组件将保存 ref。
当我有这个代码时:
/**
* @jsx React.DOM
*/
(function(){
var react = require('react');
var App = react.createClass({
render: function() {
return (
<h1 ref="myRef">This is a test</h1>
);
}
});
react.render(
<App />,
document.body
);
}());
【问题讨论】:
-
你想做一个href吗?如果没有,您能解释一下您使用 ref 的目的是什么吗?
-
感谢您的回复,但我并没有尝试使用href。我正在关注tutorial 如何使用 ref 属性,但没有成功。
-
好的,我自己尝试了一点。似乎问题在于 h1 被设置为顶级元素,即所有元素的父元素。这意味着 ref 是多余的,因为外部没有任何东西需要 ref。这就是错误消息试图说明的内容。尝试像教程中的那样扩展您的示例。
-
感谢您的回复。我最终开始了一个新项目,现在它可以工作了,但我不明白为什么我的旧示例没有。也许是别的什么地方出了问题,而那个错误是万恶之源。不过谢谢。
-
太棒了。我尝试了更多来找出您的问题,但是该错误非常不一致,因此这里可能存在一些随机性。祝你的新项目好运。
标签: reactjs react-component react-ref