Краткие сведения: я использую Flex 3.5.
У меня есть компонент Tree, который используется в качестве меню навигации между различными «страницами».Когда пользователь щелкает определенную опцию в меню, я переключаю «страницу», переключаясь между компонентами состояния в моем приложении.Дело в том, что когда пользователь действительно щелкает опцию в меню, я хочу выполнить проверку некоторой информации в определенном компоненте.Если проверка не удалась, я показываю предупреждение, и я хотел бы предотвратить переход на другую страницу.Одна часть этого просто не изменяет currentState документа, но компонент дерева все еще продолжается с событием изменения, и в результате страница A все еще отображается на экране, тогда как выбранная опция в дереве - страница B (к которому пользователь хотел перейти, но потерпел неудачу, так как некоторая информация была недействительной).
Я попытался выяснить, как я могу отменить событие изменения на самом компоненте дерева.Мысли, которые у меня не совсем подходили:
Я искал немного другое событие (например, «change» или «startChange»), для которого я могу вызвать метод stopPropagation () (начиная с обычного ').событие change 'не может быть отменено), но для компонента Tree его не существует.
Я также думал о том, чтобы всегда сохранять текущий параметр, выбранный в компоненте Tree, самостоятельно, и когда проверка не пройдена, я установлюЭлемент дерева selectedItem для этой сохраненной опции.Это также безобразно, потому что такое действие вызовет еще одно событие изменения в Дереве, таким образом, еще одно изменение в компонентах Состояний и другую популяцию страницы, на которой я уже присутствую.Это то, что я действительно не хочу делать.
Я также хотел бы использовать другой компонент, такой как Menu (и я также нашел реализацию вертикального Menu), но это даже не похоже наПомогите.Там будет существовать та же проблема.
Есть ли правильный способ сделать это?Должна быть лучшая практика для предотвращения фиксации процесса изменений!