我已经搜索了这一堆,并且没有足够的示例或解释告诉我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>
);
}
});
答案 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)