состояние фильтрации меняет значение в подпорках от избыточного - PullRequest
0 голосов
/ 28 января 2020

Заранее спасибо. Я использую метод для фильтрации массива состояний. Этот массив состояний копируется из массива проп. Поэтому я использовал

 componentWillReceiveProps(nextProps) {
    const { itemTree} = nextProps;
    this.setState({ itemTreeFiltered: itemTree});
  }

У меня есть метод, который фильтрует состояние itemTreeFiltered и сбрасывает его. Но в этой функции у меня тоже есть условие для установки itemTreeFiltered как itemTree

getFilteredItem = (searchKey) => {
    const { itemTreeFiltered} = this.state;
    const { itemTree} = this.props;
    if (searchKey && itemTree && itemTree.length > 0) {
      const filtering = (itemList, sKey) => {
        return itemList.filter((item) => {
          let hasValue = item.Name.toLowerCase().indexOf(sKey.toLowerCase()) !== -1;
          if (!hasValue) {
            for (const key in item) {
              if (key === 'sub') { 
                item.sub= filtering(item.sub, skey);
                hasValue = item.sub&& item.sub.length > 0;
              }
            }
          }
          return hasValue;
        });
      };
      const filteredList = filtering(itemTree, searchKey);
      this.setState({ itemTreeFiltered: filteredList });
    } else {
      **this.setState({ itemTreeFiltered: itemTree});**
    }
  }

Наконец, значения реквизита itemTree получают фильтры, я не понимаю, как реквизиты, которые я получил от redux, фильтруются, когда я фильтрую созданное мной состояние.

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