Невозможно изменить, если data.length> 0 в ответе - PullRequest
0 голосов
/ 27 июня 2019

Я работаю над собственным проектом 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>
} ```

1 Ответ

3 голосов
/ 27 июня 2019

Проблема в том, что массив результатов, который вы получаете с сервера, не пуст, даже если нет результатов поиска.

Вы можете проверить, не равна ли длина данных 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>);
...