Я использую компонент навигатора.
У меня есть всплеск сцены, и через 1 секунду следующая сцена будет показана.
Мне нужно, чтобы стек стека был сброшен после окончания всплеска.
Когда я использую метод resetTo, переход между сценами согласуется без анимации.
Как я могу сделать анимацию?реакция native - когда маршрут «resetTo», без анимации
ответ
Для тех, кто видящего эту тему НЕ используйте SetTimeout! Это действительно уродливое и абсолютно не ремонтируемое и масштабируемое. Для этого уже есть что-то построенное.
Вы можете использовать onDidFocus
, и он отлично работает!
http://facebook.github.io/react-native/releases/0.25/docs/navigator.html#ondidfocus
navigatorDidFocusHandler = route => {
// call immediatelyResetRouteStack here
};
Но будьте осторожны, сбрасывая стек маршрута вызывает render
. Поэтому не забудьте правильно это обработать.
Попробуйте использовать popToTop() вместо resetTo (маршрут). Это должно сделать анимацию на любом экране.
Вот список всех методов навигатора: https://facebook.github.io/react-native/docs/navigator.html#content
У меня была такая же проблема, как сейчас нет прямой способ сделать это, поэтому, пока он слит, я использую следующие как обходной путь.
Первый толчок, а затем вызвать immediatelyResetRouteStack с SetTimeout
goToScene(route) {
this.navigator.push(route);
setTimeout(()=>{
this.navigator.immediatelyResetRouteStack([route]);
}, 800);
}
Я не думаю, что это хороший подход. См. Мой ответ для получения дополнительных пояснений. –
Вы можете сделать обходной путь с некоторым кодом, используя onDidFocus
опоры и передачи объекта в navigator.push()
быть обработан с navigator.immediatelyResetRouteStack
, что-то вроде этого:
renderScene(route, navigator) {
switch (route.name) {
case 'Home':
return (<Home navigator={navigator} {...route.props} />);
case 'User':
return (<User navigator={navigator} {...route.props} />);
}
}
render() {
return (
<View style={styles.container}>
<Navigator
ref='navigator'
initialRoute={{ name: 'Home' }}
renderScene={this.renderScene}
onDidFocus={(route) => {
if (route.reset) {
this.refs.navigator.immediatelyResetRouteStack([{ name: route.name }])
}
}}
/>
</View>
);
}
И сделать магии вы называете navigator.push
так:
navigator.push({ name: 'Home', reset: true })
это анимированное дома и сброса стека для вас;)
Я столкнулся с проблемой, когда immediatelyResetRouteStack()
размонтировал мой компонент EventIndex и перемонтировал его новый экземпляр.
Это вызывает проблемы, потому что EventIndex имеет setState()
вызов в componentDidMount()
. В основном предыдущий экземпляр EventIndex вызывал setState()
на себя после того, как он был размонтирован (или что-то в этом роде).
Итак, если вы хотите избежать этой проблемы, вы можете передать маршрут как аргумент immediatelyResetRouteStack
, а не просто пропустить название маршрута.
Вместо этого navigator.immediatelyResetRouteStack([{ name: route.name }])
Вы можете просто пройти маршрут как этот navigator.immediatelyResetRouteStack([ route ])
Таким образом, следующая сцена не будет монтирования и размонтирования как новый экземпляр во время навигации.
- 1. Реакция синхронизации цветной анимации
- 2. Добавить анимацию в resetTo или сразуResetRouteStack в React Native?
- 3. Реакция анимации не работает
- 4. React Native Android переход без анимации
- 5. реакция native Generated Подпись APK
- 6. реакция-native: команда не найдена
- 7. connect реакция native с couchbase
- 8. реакция-native с ошибкой redux
- 9. реакция-native-onesignal получать push-уведомление без уведомления об открытии
- 10. Реакция анимации при удалении элемента
- 11. реакция-native start EACCESS error для setup_env.sh
- 12. реакция-native debug in chrome error
- 13. fetch реакция native return 401 error
- 14. реакция-native run-android fail Ошибка
- 15. реакция native: view not shows in android
- 16. реакция native: не могу найти переменную: define
- 17. реакция native не может назначить простую переменную
- 18. Реакция анимации: удвоенный элемент при изменении состояния
- 19. jQuery Animate - без анимации, когда страница обновляется
- 20. реакция-бутстрап: Nav без NavItem?
- 21. React Native - Animated.spring мигает при возврате анимации
- 22. реакция-native init завершается с ошибкой на устройстве в v0.30.0
- 23. Реакция на собственный поток маршрутизатора (реакция-native-router-flux) - действие вызова в редукторе
- 24. реакция-native-router-flux и замена корневого контроллера
- 25. реакция-bootstrap modal unmounting с анимацией
- 26. Реакция-native не может работать корректно в android
- 27. Реакция native ref не работает в динамических добавочных строках
- 28. ReactJS динамический маршрут без «/»
- 29. Динамический маршрут без перенаправления
- 30. реакция-native init замерзает при установке реакции native в окнах 10?
Можете ли вы показать нам свой код и особенно там, где реализована «Навигатор»/«NavigatorIOS»? –
Если вы хотите избежать взлома setTimeout, см. Здесь http://stackoverflow.com/a/37219685/1216506 –