mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-03-27 01:34:25 +08:00
# Why When using the stack navigator on iOS, it takes a (too) long time before the `didFocus` and stack `onTransitionEnd` lifecycle events are triggered. The visual animation is typically completed well within 500 msec, but it takes around 1000 msec before the previously mentioned events are emitted. This causes problems with for instance `react-navigation-shared-element`, which relies on these events to fire in a timely manner(https://github.com/IjzerenHein/react-navigation-shared-element/issues/24) # How This PR updates the resting threshold so that the underlying spring settles faster. No visual differences or differences in smoothness were witnessed during testing. ## Before Time to settle `didFocus`: **941** Time to settle `stack.onTransitionEnd`: **924** ``` 15:59:55.743 [ListViewStack]startTransition, closing: false, nestingDepth: 1 15:59:55.744 [ListViewStack]willFocus, scene: "DetailScreen", depth: 1, closing: false 15:59:55.745 Transition start: "ListScreen" -> "DetailScreen" 15:59:56.667 [ListViewStack]endTransition, closing: false, nestingDepth: 1 15:59:56.668 Transition end: "DetailScreen" 15:59:56.685 [ListViewStack]didFocus, scene: "DetailScreen", depth: 1 ``` ## After Time to settle `didFocus`: **529** Time to settle `stack.onTransitionEnd`: **512** ``` 15:55:00.686 [ListViewStack]startTransition, closing: false, nestingDepth: 1 15:55:00.687 [ListViewStack]willFocus, scene: "DetailScreen", depth: 1, closing: false 15:55:00.687 Transition start: "ListScreen" -> "DetailScreen" 15:55:01.198 [ListViewStack]endTransition, closing: false, nestingDepth: 1 15:55:01.199 Transition end: "DetailScreen" 15:55:01.216 [ListViewStack]didFocus, scene: "DetailScreen", depth: 1
@react-navigation/stack
Stack navigator for React Navigation.
Installation instructions and documentation can be found on the React Navigation website.