Невозможно прочитать свойство «включает» неопределенного фильтра флажка реакции - PullRequest
0 голосов
/ 05 марта 2019

Я следовал этому примеру фильтрации данных ссылка . Но у меня есть проблема с включенной функцией.

const updateArticles = (e) => {
            if(e.target.name){
                if(e.target.checked){
                    const currState = [...this.state.defaultData];
                    const newState = currState.filter(article => article.tags_array.includes(e.target.name));
                    this.setState(prevState =>({
                        articles: prevState.selectedArticles.length >= 1 && prevState.articles.length <=
                        prevState.defaultData.length ? [...newState, ...prevState.selectedArticles] : newState,
                        selectedArticles: [...newState, ...prevState.selectedArticles]
                    }));
                } else {
                    if (this.state.articles.length === 1){
                        this.setState({ articles: this.state.defaultData, selectedArticles: [] });
                    } else{
                        const currState = [...this.state.articles];
                        const newState = currState.filter(articles => !(articles.tags.tid.includes(parseInt(e.target.name))));
                        this.setState(prevState => ({
                            articles: newState,
                            selectedArticles: []
                        }));
                    }
                }
            }
        };

tags_array [ 0: "130" 1: «231» 2: «232» 3: «233» 4: «226» ]

e.target.name = "130"

Я получаю сообщение об ошибке типа в const newState, в котором говорится, что невозможно прочитать свойство 'includes' из неопределенного

1 Ответ

0 голосов
/ 05 марта 2019

ответ прост.

Я обменял это

const newState = currState.filter(article => article.tags_array.includes(e.target.name));

на это

const newState = currState.filter(article => article.tags_array ? article.tags_array.includes(e.target.name) : null);

один из моих объектов вообще не имел массива тегов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...