Фильтр массива, возвращающий пустой массив в Reactjs - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь отфильтровать массив объектов в ReactJs.Однако, когда я пытаюсь фильтровать объекты по идентификатору пользователя, массив возвращается как пустой.

Чтобы удостовериться, что мой фаворит обновлений обновлен, я записал в консоль всю релевантную информацию в моей функции componentDidMount ().Файл console.log показал, что моя любимая опора - это действительно массив с объектами внутри.

componentDidUpdate() {
        console.log(this.props.favorites);
        console.log(this.props.favorites[0].userId);
        console.log(this.filterFavorites());
    }

    filterFavorites() {
        return this.props.favorites.filter((favorite) => {
            return favorite.userId === this.props.currentUserId;
        });
    }

Однако я ожидал, что массив вернется с объектами, отфильтрованными по текущему идентификатору пользователя.Вместо этого я получил пустой массив

1 Ответ

0 голосов
/ 11 июля 2019

По умолчанию фильтр не имеет привязки к this;это undefined, вы должны передать эту ссылку после тела функции.

W3FTW

    filterFavorites() {
        return this.props.favorites.filter((favorite) => {
            return favorite.userId === this.props.currentUserId;
        }, this);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...