По сообщениям РЕАКТА документация:React DropdownList - дети с установленным статусом или без гражданства?
Общего шаблон является создание несколько лиц без компонентов, которые просто делают данные, и имеет динамическую составляющую над ними в иерархии , которая проходит в состояние своих детей с помощью реквизита.
Давайте возьмем, например, DropDownList и разбить его на более мелкие части:
Применяя РЕАКТ идеологию на DROPDOWNLIST будет означать, что компонент DropDownList управляет состоянием и для всплывающего окна и списка, ответив также к событиям пользовательского интерфейса. Очень хорошую реализацию можно найти здесь http://jquense.github.io/react-widgets/docs/#/dropdown-list (см. Код GitHub).
Другим подходом может быть для каждого компонента управлять своим состоянием, где это возможно. Я попытался написать минималистскую версию моего собственного DropdownList (пожалуйста, помните о CSS ..), который использует список с состоянием. Краткий пример того, как список управляет состоянием:
_onMouseDown: function (index, event) {
if(!this.state.data[index].disabled) {
this.setState({
selectedIndex: index,
focusedIndex: index
});
this.props.onSelectedIndexChange(event, index);
} else {
event.preventDefault();
}
}
Вот полный jsfiddle: http://jsfiddle.net/5d30pctd/
Я не буду сравнивать эти два подхода, так как имеют сильные и слабые стороны, а спросить, как потребителям было бы проще повторно использовать: список состояния или списка без учета состояния?
Спасибо за ответ. Я прошу об этом больше в том, что у вас есть список состояний, который можно фильтровать/сортировать/настраивать/доступный/сгруппированный/множественный выбор/прокручиваемый. Это в значительной степени поможет собрать и другие компоненты, такие как меню или двойной выбор списка. Если список сохранен, то выбор меню или двойного списка будет проще реализовать, так как List управляет своим собственным состоянием, и вам не нужно писать код для него в родительских компонентах. –
@ cosmi.nu Gotcha. Я думаю, что моя рекомендация по-прежнему стоит в этом случае; если List только с сохранением состояния, для меню или DoubleListSelection становится очень сложно управлять компонентами. Если он управляется как контролируемым, так и неконтролируемым, меню и DoubleListSelection также могут обрабатывать оба. –