Реагировать на несколько элементов - PullRequest
1 голос
/ 01 октября 2019

У меня есть раскрывающееся меню, в котором я могу выбрать несколько элементов, а затем, используя эти значения, я изменяю состояние массива, в который я загрузил некоторые данные с сервера, поэтому после того, как эти данные были изменены на основе моего выбора, мой плоский список будет отображать только те, которые соответствуют, а не все, как это было до того, как я сделал выбор. Проблема в том, что после того, как я удаляю выборки, плоский список не заполняется всеми данными, как раньше. Вот функция, где я делаю все это:

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"
                    />
...