开发者问题收集

react-native-modal 内部导航

2019-10-24
7891

我有一个带有底部标签导航的应用程序(以防万一),有时用户可以打开一个模式(react-native-modal)。模式中有按钮,我想在模式内实现导航,这样当用户按下其中一个按钮时,他们会导航到模式内的另一个屏幕(并且可以导航回来)。 任何帮助都值得感激,提前谢谢! 我想要的示例:

modal example

1个回答

我遇到过类似的问题。但我没有使用路由来实现,因为我在路由中,我想在屏幕内打开另一个组件。 所以我使用纯组件来实现。我做了一个控制可见性变量,当用户单击按钮时显示另一个“屏幕”,当用户关闭它时隐藏。

这是一个例子:

//Parent component
class Parent extends Component {
    state = {
      viewClhild: false
    }

    goToChild = (task) => {    
        this.setState({viewChild: true})
    }

    onShowClhildChange(viewChild) {
        this.setState({ viewChild });
      }

    render() {
        <View>
            {
                this.state.viewChild 
                  ? <ChildScreen onShowClhildChange={this.onShowClhildChange.bind(this)} /> 
                  : <Text>Show Parent</Text>
              }
            <Button 
                onPress={() => {this.goToChild()}}
            >
                <Text style={button.text}>Entrar</Text>
            </Button>
        </View>
    }

}


//Child Component
class ChildScreen extends Component {
    isChildVisible = (isVisible) => {
        this.setState({ viewChild: isVisible })
        if (this.props.onShowClhildChange) {
           this.props.onShowClhildChange(isVisible);
        }
      }
      constructor (props) {
        super(props);

        this.state = {
          viewChild: this.props.viewChild
        }
      }

      render() {
        return (
          <View>
            <Button 
              onPress={() => this.isChildVisible(false)}
            >
              <Text>CLOSE CHILD SCREEN</Text>
            </Button>
        </View>
        )
    }
}

希望它能帮到你!

Karine Liuti
2019-10-26