传递路径对象

时间:2015-10-20 02:52:40

标签: navigator

我已经搜索了这一堆,并且没有足够的示例或解释告诉我popToRoute(),反应原生导航器方法是如何工作的。如果有人能帮助我更好地理解它,那会很棒。

我传递了我的路线对象(这绝对是正确的)但得到错误:"不变违规:为不存在的路线调用popToRoute!"

以下是我使用popToRoute()导航器方法的相关代码:

var InviteRoommates = React.createClass({
  submitRoommates: function() {
    this.props.navigator.popToRoute({
      index: 3,
      id: 'ItemList'
    });
  },
  render: function() {
    return (
      <View style={styles.container}>
        <Text>INVITE ROOMMATES</Text>
        <TextInput style={styles.input} placeholder="roommate's email address"/>
        <TouchableHighlight
          style={styles.button}
          onPress={() => this.submitRoommates()}
        >
          <Text style={styles.btnText}>Submit</Text>
        </TouchableHighlight>
      </View>
    );
  }
});

3 个答案:

答案 0 :(得分:3)

我写了与你完全相同的代码,遇到了同样的问题。找到一个有效的解决方案,虽然很难看。使用this.props.navigator.getCurrentRouts()访问所有路径对象,然后在数组中指定一个索引。当然,这只有在你始终知道路径对象在堆栈中的位置时才有效....

this.props.navigator.popToRoute(this.props.navigator.getCurrentRoutes()[1]);

答案 1 :(得分:2)

如果你想按名称popToRoute,你只需循环遍历路由堆栈并按名称检查每条路线,然后弹出到那条路线。

var routes = this.props.navigator.state.routeStack;
for (var i = routes.length - 1; i >= 0; i--) {
  if(routes[i].name === "MyDestinationRoute"){
    var destinationRoute = this.props.navigator.getCurrentRoutes()[i]
    this.props.navigator.popToRoute(destinationRoute);
  }
}

答案 2 :(得分:0)

这对我有用。

In: data["DayIndex"].unique()

Out: array(['04/23/17', '04/20/17', '04/21/17', '04/24/17', '04/22/17',
       '05/02/17', '04/27/17', '05/06/17', '04/30/17', '04/25/17',
       '04/26/17', '05/04/17'], dtype=object)