Я хотел бы предложить, чтобы государство в компоненте под названием selectedItems
Затем обратный вызов onChange
принимает в качестве параметров element
и checked
, от Bootstrap Multiselect docs. Элемент имеет метод val()
, который возвращает значение, присвоенное этому параметру.
Поэтому handleChange может быть реализована следующим образом
handleChange: function (element, checked) {
var newSelectItems = _.extend({}, this.state.selectItems);
newSelectItems[element.val()] = checked;
this.setState({selectItems: newSelectItems})
},
getInitialState: function() {
return {selectItems: {}};
}
Таким образом, каждый раз, когда элемент щелкают, его атрибут checked
сохраняется в компоненте состояния, что весьма удобно, если вам нужно изменить что-либо, основанное на выбранных значениях MultiSelect
.
Обратите внимание, что для вышеуказанного кода вам необходимо либо Underscore, либо Lodash. Это необходимо, так как React не может объединить вложенные объекты, как ответ here.
Вы можете попытаться сделать 'handleChange: функция (событие) {console.log (событие); } 'и посмотреть, записывает ли он что-нибудь? – gcedo
ya Я проверил его, но не знаю, какое поле искать, чтобы получить выбранные элементы. – bunty93
На самом деле из 'onChange' вы получаете сам элемент, на который нажимаете, и логическое значение, true, если элемент был проверен, в противном случае - false. Ниже вы найдете мой полный ответ. – gcedo