7

我正在尝试ref使用 React 使用该属性。我的浏览器出现一个奇怪的错误,我无法弄清楚问题所在。谁能向我解释为什么我会收到此错误:

错误:不变违规: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
);
}());
4

2 回答 2

0

你的代码是正确的。

工作 jsFiddle:http: //jsfiddle.net/reactjs/69z2wepo/

var App = React.createClass({

    render: function() {
        return (
            <h1 ref="myRef">This is a test</h1>
        );
    }

});

React.render(
    <App />,
    document.body
);

根据错误消息,您将 ref 放置在未拥有的元素上,但在您提供的代码中h1App. 您的代码与上面粘贴的代码不同吗?

注意(来自文档):

In React, an owner is the component that sets the props of other components ... 
It's important to draw a distinction between the owner-ownee relationship and the parent-child relationship. 
于 2015-03-14T19:02:31.627 回答
0

这个答案可以帮助您访问,仔细检查您的代码以针对这两个问题,我的错误是由后者引起的。
在我的代码中,我写require("React") require("React-dom")了,实际上是这样require('react'),我修改了我的代码,它起作用了。所有的错误都是由这两个因素造成的。只需完全检查您的代码。

于 2015-12-08T14:35:19.547 回答