如何在 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'
}