React, Redux, TypeError: undefined не является объектом if - PullRequest
0 голосов
/ 01 мая 2020

Я пробовал несколько решений форума, но все еще в тупик. Спасибо за любую помощь ...

Я пытаюсь отобразить общее количество сообщений, созданных user, взяв самое последнее сообщение postCount.

Моя проблема в том, что user еще ничего не опубликовал, а this.props.user.myFeed[0].postCount, редукторная опора, которая содержит сообщения / ленту пользователя, еще не создан. Экран пытается загрузить, и я получаю "TypeError: undefined is not an object (evaluating 'this.props.user.myFeed[0]')"

Я пробовал несколько решений, но есть причина, по которой простой код ниже не работает.

<Text>Posts: {(this.props.user.myFeed[0]) ? this.props.user.myFeed[0].postCount : 0 }</Text>

Также попробовал ниже:

<Text>Posts: {(this.props.user.myFeed[0] === undefined) ? this.props.user.myFeed[0].postCount : 0 }</Text>

Если магазин не определен, разве это не должно быть просто 0?

Еще раз спасибо! Матф

1 Ответ

1 голос
/ 01 мая 2020

Поскольку ваш myFeed является пустым массивом, это означает, что myFeed [0] возвращает ошибку. Поэтому вы должны проверить, что myFeed не является неопределенным, чтобы продолжить. Также проверьте postCount, если это возможно.

    <Text>Posts: {(this.props.user.myFeed && this.props.user.myFeed[0]) ?
 this.props.user.myFeed[0].postCount : 0 }</Text>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...