我应该在导航器中的哪里放置重置堆栈功能?

时间:2019-04-11 15:45:21

标签: react-native stack-navigator

我第一次在React Native中工作,并且每当用户单击另一个屏幕时都尝试重置堆栈导航。我已经在所有导航器上方创建了一个resetStack函数,但无法弄清楚在何处调用该函数才能正常工作,我已经在黑暗中拍摄了一段时间,因此感谢任何输入。预先感谢!

我尝试了几个不同的地方。在navigationOptions下方的Navigator中,将它们放在一起。如有必要,我可以共享更多代码。

private void updatePropertiesForDocuments(List<Document> docs, String a, String b) {
    boolean isAMissing = isEmptyOrNull(a);
    boolean isBMissing = isEmptyOrNull(b);

    if(!isAMissing && !isBMissing) {
        docs.forEach(doc -> {
            doc.setA(a);
            doc.setB(b);
            saveDocument(doc);
        });
    } else if(!isBMissing) {
        docs.forEach(doc -> {
            doc.setB(b);
            saveDocument(doc);
        });
    } else if(!isAMissing) {
        docs.forEach(doc -> {
            doc.setA(a);
            saveDocument(doc);
        });
    }
}
resetStack = () =>{
  this.props.navigation
  .dispatch(StackActions.reset({
    index: 0,
    actions: [
      NavigationActions.navigate({
        routeName: Home

1 个答案:

答案 0 :(得分:0)

我已经检查了您尝试过的解决方案。 尝试更换

onPress={() => { this.handleHomePressed() }}

使用

 onPress={() =>this.handleHomePressed() }

内部handleHomePressed():

handleHomePressed(){
    return this.props
               .navigation
               .dispatch(NavigationActions.reset(
                 {
                    index: 0,
                    actions: [
                      NavigationActions.navigate({ routeName: 'Home'})
                    ]
                  }));
  }

希望它能起作用!