如何在 React Native Router Flux 中获取之前的场景名称
How to get previous scene name in react native router flux
我需要使用 react-native-router-flux 在 componentWillMount 中获取前一个场景键,以检查我从哪个屏幕返回并根据条件采取一些行动。我看了很多,但还没有找到答案。有什么方法可以做到吗?
这很难说,但更容易的是在导航出去时传递变量,比如:
Actions.home({from: 'about'})
现在,Home
道具包含 from
变量,您可以处理它。
您可以通过
Actions.prevScene
,
这将 return 堆栈中上一个场景的键。
@sftgf 的解决方案应该有效,但在 react-native-router-flux 4.0.0-beta.28
上,它错误地 returns 我的当前场景。
这 Gist 有效,并且具有在堆栈中获取其他场景的额外好处:
import {Actions} from react-native-reouter-flux
export function getPreviousScene (jumpCount = 1) { // if nothing is passed, it defaults to 1
const index = Actions.prevState.routes.length - (jumpCount + 1) // because zero-based index
if (index >= 0) {
return Actions.prevState.routes[index].routeName
}
return 'home'
}
我需要使用 react-native-router-flux 在 componentWillMount 中获取前一个场景键,以检查我从哪个屏幕返回并根据条件采取一些行动。我看了很多,但还没有找到答案。有什么方法可以做到吗?
这很难说,但更容易的是在导航出去时传递变量,比如:
Actions.home({from: 'about'})
现在,Home
道具包含 from
变量,您可以处理它。
您可以通过
Actions.prevScene
,
这将 return 堆栈中上一个场景的键。
@sftgf 的解决方案应该有效,但在 react-native-router-flux 4.0.0-beta.28
上,它错误地 returns 我的当前场景。
这 Gist 有效,并且具有在堆栈中获取其他场景的额外好处:
import {Actions} from react-native-reouter-flux
export function getPreviousScene (jumpCount = 1) { // if nothing is passed, it defaults to 1
const index = Actions.prevState.routes.length - (jumpCount + 1) // because zero-based index
if (index >= 0) {
return Actions.prevState.routes[index].routeName
}
return 'home'
}