Я создаю мобильное приложение SPA, используя React. Мне интересно, как я создаю контроллер навигации или контроллер панели вкладок, используя способ Flux. В основном мне интересно, как я обрабатываю права собственности на детей и кто/что обрабатывает фактические переходы.Как реализовать контроллер навигации/контроллер панели вкладок в React/Flux?
Прямо сейчас у меня есть компонент navigationController, который имеет метод push
для добавления страниц в стек и перехода их в наш выход. Все это сохраняется в состоянии, и родительский компонент ничего не знает об этом.
Для моего контроллера панели вкладок родительский компонент проходит в некоторых элементах tabBar с дочерними элементами элемента tabBar, являющимся содержимым, отображаемым при активной вкладке. Контроллер панели вкладок обрабатывает, когда активна вкладка и какой контент отображается на активной вкладке. Родитель ничего не знает о том, какая вкладка активна. активная вкладка сохраняется в состоянии контроллера панели вкладок.
Подобные вещи, похоже, не легко реализуются в Flux. Как бы я, от родителя, сказать контроллеру навигации добавить элемент, а затем обработать переход изнутри контроллера. Кроме того, как добавить страницы к контроллеру, чтобы они могли продвигать новые страницы, если они должны пройти весь путь до корня?
Я думаю, моя проблема может заключаться в том, что я не совсем понимаю Flux.
Любая помощь была бы принята с благодарностью.
Как вы это делаете без единого элемента TabStore? Что делать, если я хочу больше одного tabBarController? Ответ вы определенно разъясняете Flux немного больше для меня, но я до сих пор не знаю, как эта модель будет работать для контроллера навигации, где дети (или страницы) контроллера определяют, какие страницы нажать/поп. - edit - Это может помочь отметить, что я не контролирую контент, который будет осуществлять навигационный контроллер. – Kyle
В какой-то степени эта проблема выходит за пределы потока - то, что предлагает архитектура Flux, - это где-то проблема, то есть в отдельном логическом слое, а не в уровне представления. Например, у вас может быть однострочный TabStore, который управляет несколькими экземплярами под капотом, но он все равно будет следовать одному и тому же потоку. – nrabinowitz