代码之家  ›  专栏  ›  技术社区  ›  drosboro

在HOC中包装时访问react导航道具(绑定此道具)?

  •  0
  • drosboro  · 技术社区  · 6 年前

    我对本地反应,导航反应,和HOC反应还比较陌生。我试着用 react-native-responsive-ui react-navigation . 对于普通组件,我可以这样做:

    export default class SettingsScreen extends React.Component {
      static navigationOptions = {
        title: 'Settings',
        headerRight: <Button onPress={() => props.navigation.navigate('SettingsScreen')} title="Btn" />
      }
      ...
    }
    

    但是,我发现,如果我用 responsive

    class HomeScreen extends React.Component { ... }
    
    const ResponsiveHomeScreen = responsive(HomeScreen)
    ResponsiveHomeScreen.navigationOptions = {
      title: 'Home',
      headerRight: <Button onPress={() => this.props.navigation.navigate('SettingsScreen')} title="Btn" />
    }
    export default ResponsiveHomeScreen
    

    undefined is not an object (evaluating '_this3.props.navigation')
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   drosboro    6 年前

    Li357的评论有解决办法。我只是重写 navigationOptions the docs

    const ResponsiveHomeScreen = responsive(HomeScreen)
    ResponsiveHomeScreen.navigationOptions = ({navigation}) => {
      return {
        title: 'FlashNote',
        headerRight: <Button onPress={() => navigation.navigate('SettingsScreen')} title="Btn" />
      }
    }
    

    瞧,问题解决了。谢谢,Li357!