mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-23 03:50:11 +08:00
Remove prop onNavigate.
Summary:
Remove prop `onNavigate` from these views.
- NavigationAnimatedView
- NavigationCardStack
- NavigationCard
Also, the `sceneProps` onject that is passed to the `renderScene` function
no longer contains `onNavigate`.
The contract that `onNavigate` expects has been vague. Different data flow
system may expect complete different params for such function
For instance,
* onNavigate({type: 'back'});
* onNavigate({type: 'BACK'});
* onNavigate('back'});
We have no intention to unify such generic API since it's more likely to be
constrained by the data flow frameworks such as redux or flux.
Also, passing the prop `onNavigate` all the way down to the component that
invokes the navigation action can be really tedious. We'd expect developer
to either pass such callback (onNavigate) via context or just set up some
kind of static actions that any component can call directly.
`onNavigate` was previously added as a part of (redux-like) reducers-friendly
feature but that's no longer the case.
This new prop `onNavigateBack` is used to explicitly handle the case when the back button or back gesture
is performed.
Reviewed By: ericvicenti
Differential Revision: D3410873
fbshipit-source-id: a703cf0debd474cff33d6610e858b9c4bb3ecbf5
This commit is contained in:
committed by
Facebook Github Bot 9
parent
7e445e6cfa
commit
fb0007d853
@@ -57,6 +57,7 @@ type SceneViewProps = {
|
||||
|
||||
type Props = NavigationSceneRendererProps & {
|
||||
onComponentRef: (ref: any) => void,
|
||||
onNavigateBack: ?Function,
|
||||
panHandlers: ?NavigationPanPanHandlers,
|
||||
pointerEvents: string,
|
||||
renderScene: NavigationSceneRenderer,
|
||||
@@ -93,6 +94,7 @@ class NavigationCard extends React.Component<any, Props, any> {
|
||||
static propTypes = {
|
||||
...NavigationPropTypes.SceneRendererProps,
|
||||
onComponentRef: PropTypes.func.isRequired,
|
||||
onNavigateBack: PropTypes.func,
|
||||
panHandlers: NavigationPropTypes.panHandlers,
|
||||
pointerEvents: PropTypes.string.isRequired,
|
||||
renderScene: PropTypes.func.isRequired,
|
||||
@@ -121,7 +123,10 @@ class NavigationCard extends React.Component<any, Props, any> {
|
||||
style;
|
||||
|
||||
const viewPanHandlers = panHandlers === undefined ?
|
||||
NavigationCardStackPanResponder.forHorizontal(props) :
|
||||
NavigationCardStackPanResponder.forHorizontal({
|
||||
...props,
|
||||
onNavigateBack: this.props.onNavigateBack,
|
||||
}) :
|
||||
panHandlers;
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user