【问题标题】:React Navigation - Tab Navigation - Getting different screens from only one classReact Navigation - Tab Navigation - 仅从一个类中获取不同的屏幕
【发布时间】:2018-04-13 10:35:21
【问题描述】:

可以在不超过一个类的情况下在选项卡之间进行更改吗?

在我的代码中,我有一个返回多个组件的类,我希望 TabNavigator 在这些组件之间切换,而不是像 React Navigation 文档 (https://reactnavigation.org/docs/tab-based-navigation.html) 中那样在类之间切换。

class Monument extends Component{
    render(){
        const {navigate} = this.props.navigation;
        const { data } = this.props.navigation.state.params;

        return (
            <MonumentMaker category={'Castelos'} navigate={navigate} data={data}/>
            <MonumentMaker category={'Museus'} navigate={navigate} data={data}/>
            <MonumentMaker category={'Igrejas'} navigate={navigate} data={data}/>
            <MonumentMaker category={'Locais de Interesse'} navigate={navigate} data={data}/>
        );
    }
}

export default TabNavigator({
  Convento: {
    screen:**first component**
  },
  Museus: {
    screen:**second component**
  },
  Igrejas: {
    screen:**third component**
  },
  OutrosLocais: {
    screen:**forth component**
  }
})

我想要完成的可能是什么?

感谢您的帮助!

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    您可以按如下方式设置TabNavigation

    const myTabNavigator = TabNavigator({
       Convento: {
        screen: { screen: props => <Monument {...props} {...myProps} /> }
      },
      Museus: {
        screen: { screen: props => <Monument {...props} {...myProps} /> }
      },
      Igrejas: {
        screen: { screen: props => <Monument {...props} {...myProps} /> }
      },
      OutrosLocais: {
        screen: { screen: props => <Monument {...props} {...myProps} /> }
      }
    })
    

    Monument.js

    const Monument = ({...props}, {...myProps}) => (
      <View>
         {...// More stuff}
      </View>
    )
    

    【讨论】:

    • 嗨@Pritish,谢谢你的回答。但是我并没有放弃你在那里所做的事情,你能更好地解释一下吗?谢谢 :)
    • 组件必须保持singleTon,就像您的情况下的Monument一样,只有props必须更改并传递给它,因为您要返回不同类型的@987654327 @(相同,只是绑定了不同的props),所以你应该直接链接它在navigation中链接它并根据你的方便传递props
    • 嗯好吧!谢谢你的帮助:) 最好的问候
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2019-05-08
    • 1970-01-01
    相关资源
    最近更新 更多