在反应导航中从TabNavigator动态添加或删除选项卡

时间:2020-01-12 08:19:21

标签: reactjs react-native react-navigation react-navigation-stack

我在React Native应用程序中有一个用例,我希望能够从tabnavigator中动态添加或删除标签。在我的应用程序的一部分中,用户必须完成几个步骤。我希望每个步骤都由一个标签表示。但是,当用户打开应用程序时,管理员可以添加或删除步骤。如果发生这种情况,我希望删除相应的标签,或者添加新的标签。

我已经创建了该功能,方法是每当屏幕数量发生变化时创建一个新的tabnavigator,然后渲染此新的tabnavigator而不是旧的。我收到警告“您只应在应用程序中显式呈现一个导航器...”

我的代码看起来像

export default class ParentComponent extends Component {

...

generateNewNavigator(params) {
const newNav = createMaterialTopTabNavigator(params) //Generate it
MyNavigator = createAppContainer(newNav)
this.setState({
myView: <MyNavigator/>
})

...

render() {
return({this.state.myView})
}
}

一堆应用程序位于该组件的外部,该组件本身嵌套在组成“主”应用程序的堆栈和标签导航器中。

我的问题:这是否引起关注?如果是这样,是否还有另一种删除和添加标签的方法,使我能够遵守该准则?在我看来,这些导航器一旦创建便是不可变的。这是我想出的唯一解决方案。谢谢!

0 个答案:

没有答案