我有问题。我正在学习React js,我有一个模板,我必须编辑。我需要添加一些ajax方法来获取和发送信息。我设法做了一些这些行动,但现在我遇到了问题。
我有php脚本,它让我json_encode。
getCategories: function() {
$.ajax({
url: '#########my_url#########',
dataType: 'json',
success: function(data) {
this.setState({datas: data});
}.bind(this)
});
},
我有这个
getInitialState: function() {
return {datas: []};
},
问题是我总是首先获得空数组,然后是结果。当我尝试使用它时,它会让我产生错误,因为它试图映射空数组。在我尝试使用该对象之前,这是console.log。
[HMR] Waiting for update signal from WDS...
[]
[WDS] Hot Module Replacement enabled
[Object, Object, Object, Object]
如何在对象装满后使其工作?
答案 0 :(得分:0)
第一个选项:在ajax调用成功时呈现您的视图
第二个选项:预测你的state.datas仍为空的情况
例如,如果您正在使用渲染功能,请尝试:
{ this.state.datas ? <div> Loading </div> : <....
以上是JSX语法
希望有所帮助
修改强>
if(this.state.datas.length == 0) {
var mycomponent =<div> Loading ... </div>;
} else {
var mycomponent = this.state.datas;
}
基本上这应该有用。