У меня есть раскрывающееся меню, в котором я могу выбрать несколько элементов, а затем, используя эти значения, я изменяю состояние массива, в который я загрузил некоторые данные с сервера, поэтому после того, как эти данные были изменены на основе моего выбора, мой плоский список будет отображать только те, которые соответствуют, а не все, как это было до того, как я сделал выбор. Проблема в том, что после того, как я удаляю выборки, плоский список не заполняется всеми данными, как раньше. Вот функция, где я делаю все это:
onSelectedItemsChange = selectedItems => {
this.setState({ selectedItems });
var newDataArray = [];
for (i = 0; i < selectedItems.length; i++) {
for (j = 0; j < this.state.All.length; j++) {
if (selectedItems[i] === this.state.All[j].type) {
const newData = this.state.All[j];
newDataArray.push(newData);
this.setState({
All: newDataArray //"All" is an array where I load all data and here I am populating it with new data based on the user selection
});
console.log(newDataArray);
}
}
}
};
РЕДАКТИРОВАТЬ
<MultiSelect
hideTags
items={this.filter_pref}
uniqueKey="name"
ref={(component) => { this.multiSelect = component }}
onSelectedItemsChange={this.onSelectedItemsChange}
selectedItems={selectedItems}
selectText="Pick Items"
searchInputPlaceholderText="Search Items..."
onChangeInput={(text) => console.log(text)}
altFontFamily="ProximaNova-Light"
tagRemoveIconColor="#CCC"
tagBorderColor="#CCC"
tagTextColor="#CCC"
selectedItemTextColor="#CCC"
selectedItemIconColor="#CCC"
itemTextColor="#000"
displayKey="name"
searchInputStyle={{ color: '#CCC' }}
submitButtonColor="#CCC"
submitButtonText="Submit"
/>