Заранее спасибо. Я использую метод для фильтрации массива состояний. Этот массив состояний копируется из массива проп. Поэтому я использовал
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, фильтруются, когда я фильтрую созданное мной состояние.