Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
6f9d133
WIP: handle multipop better
JackWink Feb 25, 2016
c062355
rollback navbar customization changes
Feb 29, 2016
662001d
publish new version
Feb 29, 2016
36ffa9a
add customization of navbar
Feb 29, 2016
738e97d
use hideNavBar in example. close #262
zxcpoiu Mar 1, 2016
7d25ed2
more flexible navbar customization
Mar 1, 2016
e9fa562
Merge pull request #249 from JackWink/master
Mar 1, 2016
42d1918
Merge pull request #270 from zxcpoiu/master
Mar 1, 2016
f122c90
Merge pull request #259 from lrettig/master
Mar 1, 2016
efb791b
publish new version
Mar 1, 2016
8fbb903
use hideNavBar in README example
zxcpoiu Mar 1, 2016
9f43911
Merge pull request #271 from zxcpoiu/master
Mar 1, 2016
19cd525
typo in README
Emilios1995 Mar 2, 2016
a3ccd7b
NoTransition scene config causes blank scenes
keeth Mar 3, 2016
9105507
Merge pull request #273 from Emilios1995/patch-1
Mar 3, 2016
bb8b010
Merge pull request #275 from sprightco/master
Mar 3, 2016
4903563
Check if current router exists
jasonals Mar 4, 2016
f90067f
ExRouter add onTransitionToTop , like ExNavigator transitionToTop , …
virtoolswebplayer Mar 4, 2016
f8e67eb
Added missing defaultRoute action to tabbar
Nikamura Mar 4, 2016
c442445
Merge pull request #280 from virtoolswebplayer/master
Mar 4, 2016
0367b46
Merge pull request #282 from Nikamura/master
Mar 4, 2016
9c8a47d
Merge pull request #278 from jasonals/patch-1
Mar 4, 2016
a790262
Use route props first when determining route title
Mar 5, 2016
adb8e07
Merge pull request #284 from sprightco/refresh-navigationbar-title
Mar 5, 2016
c2146fc
fix hideTabBar
Mar 7, 2016
e3a844f
upgrade examples to React Native 0.20.0
peterp Mar 7, 2016
d99f96e
Merge pull request #290 from peterp/master
Mar 7, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
ExRouter add onTransitionToTop , like ExNavigator transitionToTop , a…
  • Loading branch information
virtoolswebplayer committed Mar 4, 2016
commit f90067ff7ce101c81407bc8d62e6e67857100b44
28 changes: 27 additions & 1 deletion ExRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,12 @@ export default class ExRouter extends React.Component {
this.onReplace = this.onReplace.bind(this);
this.onJump = this.onJump.bind(this);
this.onActionSheet = this.onActionSheet.bind(this);
this.onTransitionToTop = this.onTransitionToTop.bind(this);
this.state = {};
}

componentWillUnmount() {
if (this === Actions.currentRouter.delegate) {
if (Actions.currentRouter && this === Actions.currentRouter.delegate) {
Actions.currentRouter = null;
}
}
Expand Down Expand Up @@ -267,6 +268,31 @@ export default class ExRouter extends React.Component {
return true;
}

onTransitionToTop(route:Route, props:{ [key: string]: any}) {
if (this.props.onTransitionToTop) {
const res = this.props.onTransitionToTop(route, props);
if (!res) {
return false;
}
}
const navigator = this.refs.nav;
let router:BaseRouter = route.parent;

// reset router stack
router._stack = [route.name];

// you can use navigator.transitionToTop or navigator.immediatelyResetRouteStack + navigator.push
// navigator.immediatelyResetRouteStack + navigator.push is more beter ,
// if target route's parent(router) stack only have one route eg ['someroute']

//navigator.transitionToTop(new ExRouteAdapter(route, props));

navigator.immediatelyResetRouteStack([]);
navigator.push(new ExRouteAdapter(route, props));

return true;
}

onModal(route: Route, props:{ [key: string]: any}):boolean {
let element = React.createElement(route.component, Object.assign({}, route.props, props));
this.setState({modal: element});
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ npm i react-native-router-flux --save
|-----------|--------|---------|--------------------------------------------|
| name | string | required | Will be used to call screen transition, for example, `Actions.name(params)`. Must be unique. |
| component | React.Component | semi-required | The `Component` to be displayed. Not required when defining a nested `Router` or child, see example |
| type | string | optional | Defines how the new screen is added to the navigator stack. One of `push`, `modal`,`actionSheet`,`replace`, `switch`, `reset`. Default is 'push'. `replace` tells navigator to replace current route with new route. `actionSheet` shows Action Sheet popup, you must pass callback as callback function, check Example for details. `modal` type inserts its 'component' after navigator component. It could be used for popup alerts as well for various needed processes before any navigator transitions (like login auth process).``switch` is used for tab screens. `reset` is similar to replace except it unmounts the componets in the navigator stack. `modal` component could be dismissed by using Actions.dismiss() |
| type | string | optional | Defines how the new screen is added to the navigator stack. One of `push`, `modal`,`actionSheet`,`replace`, `switch`, `reset` `transitionToTop`. Default is 'push'. `replace` tells navigator to replace current route with new route. `actionSheet` shows Action Sheet popup, you must pass callback as callback function, check Example for details. `modal` type inserts its 'component' after navigator component. It could be used for popup alerts as well for various needed processes before any navigator transitions (like login auth process).``switch` is used for tab screens. `reset` is similar to replace except it unmounts the componets in the navigator stack. `modal` component could be dismissed by using Actions.dismiss() `transitionToTop` will reset router stack ['route.name'] and with animation, if route has `sceneConfig`. eg `<Route name="login" schema="modal" component={Login} type="transitionToTop" />` |
| initial | bool | false | Set to `true` if this is the initial screen |
| title | string | null | The title to be displayed in the navigation bar |
| schema | string | optional | Set this property to the name of a previously defined `Schema` to inherit its properties |
Expand Down