【发布时间】:2015-05-30 22:24:42
【问题描述】:
我遇到了一个问题,但我没有找到任何相关的文档。
这是我的组件的渲染方法:
render()
{
return (
<div refs="myContainer">
</div>
);
}
此外,我还有一种方法可以从我的 Java 服务器获取数据:
getAsyncData()
{
$.get('...URL...')
.done(function(response) {
var list = JSON.parse(response); // This is an objects array
var elementsList = [];
list.forEach(function(item) {
elementsList.push(<div ref={item.id}>{item.name}</div>);
});
React.render(elementsList, React.findDOMNode(this.refs.myContainer));
});
}
在我的 componentDidMount 方法中,我只是启动异步方法:
componentDidMount()
{
this.getAsyncData();
}
所以我从 ReactJS 收到了这个错误:
只有 ReactOwner 可以有 refs。这通常意味着你正在尝试 将 ref 添加到没有所有者的组件(即 不是在另一个组件的
render方法中创建的)。尝试 将此组件呈现在一个新的顶级组件中,该组件 将持有参考。
所以这意味着我不能使用我的动态元素,另外认为 我将有一个复杂的组件,而不是一个简单的 DIV,我将拥有一个包含方法的复杂组件。
我该如何处理?
谢谢!
【问题讨论】: