我在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})
}
}
一堆应用程序位于该组件的外部,该组件本身嵌套在组成“主”应用程序的堆栈和标签导航器中。
我的问题:这是否引起关注?如果是这样,是否还有另一种删除和添加标签的方法,使我能够遵守该准则?在我看来,这些导航器一旦创建便是不可变的。这是我想出的唯一解决方案。谢谢!