我正在研究一个React本机项目,在其中我查询一个搜索短语。
但是,在我的条件语句中,无论数组内部是否有数据,我都会得到Not empty
。我在做什么错了?
如果找到匹配的服务器端查询,则为第一个数组:
[
{
"document": {
"name": "projects/warrenty-7707e/databases/(default)/documents/users/HBC/warrentycard/d4XgBWIywU6K2fZ7ix0j",
"fields": {
"comment": {
"stringValue": ""
},
"model": {
"stringValue": ""
},
"createDate": {
"timestampValue": "2019-06-27T11:04:47.031Z"
},
"product": {
"stringValue": ""
},
"exp_date": {
"stringValue": ""
},
"plate": {
"stringValue": ""
},
"email": {
"stringValue": ""
},
"name": {
"stringValue": ""
}
}
}
}
]
这是数组,如果不匹配:
[
{}
]
无论哪种方式,在以下条件中,我只会得到Not Empty
的退款。有什么想法吗?
if (this.state.serverData.length > 0) {
return (
<View>
<Text>Not empty</Text>
</View>
)
} else {
<View>
<Text>empty</Text>
</View>
} ```
答案 0 :(得分:3)
问题是,即使没有搜索结果,从服务器获取的结果数组也不为空。
您可以检查数据长度是否不为0(正在执行)以及第一个对象是否为空。
if (this.state.serverData.length > 0 && Object.keys(this.state.serverData[0]).length !== 0 ) {
return (<View>
<Text>Not empty</Text>
</View>
)
}
return (<View>
<Text>empty</Text>
</View>);