【发布时间】:2015-10-13 15:45:46
【问题描述】:
我正在尝试做的是在加载页面时,它应该从 parse.com 数据库中获取所有数据并将其显示在页面上,并且我想在我的查找请求完成后呈现我的组件。
下面你可以看到我的代码
var Ap = React.createClass({
render: function(){
Parse.initialize("mSWrLtmIHQdh8CNGk14fLbnK4gaVDbgvjw1zTeCT", "qKDkELvVpvgkuDDZzGK2pdP5o69LBDjWaRI2XfUb");
var GameScore = Parse.Object.extend("TestObject");
var query = new Parse.Query(GameScore);
var x;
query.find({
success: function(results) {
//debugger;
var cells = [];
for (var i in results) {
cells.push(<tr><td>"foo"</td><td>{i.attributes.foo}</td></tr>);}
return (
<div id="second-div">
<table>
{cells}
</table>
</div>
)
},
error: function(error) {
return(<div></div>)
}
});
}
}
);
React.renderComponent(<Ap/>, document.body);
</script>
但我收到以下错误,因为我在 find 查询的 done 方法中返回渲染。
未捕获的错误:不变违规:Ap.render():必须返回有效的 ReactComponent。您可能返回了未定义、数组或其他一些无效对象。
有没有办法在开始渲染之前等待我的查找查询结束
我还有一个我无法理解的问题
未捕获的类型错误:无法读取未定义的属性 'foo'
由于我是 reactjs 和解析新手,所以任何帮助将不胜感激
【问题讨论】:
-
push(<tr><td>"foo"</td><td>{i.attributes.foo}</td></tr>)正确引用它。 -
@BhojendraNepal 我没明白你想说什么
-
push(<tr>)会起作用吗?不是。push('<tr>')将。 -
@BhojendraNepal 哦,我明白了。但我仍然遇到 ap.render 错误
-
首先,您的
render方法不应该用于实现视图之外的逻辑。其次,它应该返回一个组件。您正在返回一个对象。
标签: javascript parse-platform reactjs