JS длина массива возвращает 1 вместо 0, когда пусто - PullRequest
0 голосов
/ 25 апреля 2020

Привет, у меня проблема с моим проектом. Я получил данные в компоненте реакции через реквизит, и когда я пытаюсь проверить, равна ли длина этих данных 0, у меня возникают проблемы, чтобы сделать это правильно. На картинке внизу есть мои бревна. Он показывает, что в массиве themeParts ничего нет, но длина этого массива равна 0. Я не понимаю, почему это происходит? Также я могу видеть в первой строке themeParts: Array (1), но после тегов есть 0, поэтому я не знаю .. Что это может быть?

 render() {
        console.log(this.props.theme);
        console.log(this.props.theme.themeParts);
        console.log(this.props.theme.themeParts.length);
        <h5>{(this.props.theme.themeParts.length > 0)? 'true' : 'false'}</h5>
//This returns false but it should be true
}

logs

Редактировать: так я отправляю данные. У него есть еще один уровень, но принцип такой же на уровне выше этого компонента. Функция рендеринга, которую я посылаю сюда раньше, это рендеринг из компонента Theme. Может быть, для каждого делать что-то с данными?

/**
 * Render themes for package
 * @return {[]}
 */
renderThemeList() {
    const items = [];
    this.props.package.themes.forEach((theme, key) => {
        items.push(<Theme key={key} theme={theme} hasOneTheme={(this.props.package.themes.length === 1)}/>);
    });
    return items;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...