ericvicenti/navigation-rfc

AnimationStackView onNavigation should return a promise for animation completion

Open

#9 opened on Jan 6, 2016

View on GitHub
 (4 comments) (0 reactions) (0 assignees) (44 forks)github user discovery
help wanted

Repository metrics

Stars
 (440 stars)
PR merge metrics
 (PR metrics pending)

Description

onNavigation() could return a promise that would allow to (optionally) track the completion of the navigation action.

For instance, if a button do a navigation push, you might want to make it display differently and disable it until the navigation is completed. I don't think it is the responsability to the button to "check if navigation is happening and disable it itself" but if the button onPress methods allow a function that (potentially) returns a promise, we could just do: <Button onPress={() => onNavigation(new Navigation.Action.Push('route'))} />

It's great to have a fine level of control over navigation action: on a single navigation action, user could know when the navigation has successfully moved to next screen or if it was aborted (by making the promise failing). Also the fact it's a promise make a great API to the user I think, because people might just ignore this detail and don't use it, but when you need it you can do a then() on the result.

(for context, I asked the same question on the old navigation api: https://github.com/facebook/react-native/issues/4824 )

Contributor guide