我想做一个HOC,将navigationOptions传递给传递的组件。



const withNavigationOptions = Component => ({ ...props }) => {
  const ComponentWithNavigation = Component;
  ComponentWithNavigation.navigationOptions = ({ navigation }) => {
    const { title } = navigation.state.params;
    return {
      header: (
        <Navbar
          navigation={navigation}
          title={title}
          onBackPress={() => navigation.navigate('Dashboard')}
        />
      )
    };
  };

  return <ComponentWithNavigation {...props} />;
};

export default withNavigationOptions;





但是静态选项未分配给返回的组件。任何帮助将不胜感激。

最佳答案

将NavigationOptions传递给呈现的组件的正确方法是将其作为道具传递。

const withNavigationOptions = Component => ({ ...props }) => {
  const ComponentWithNavigation = Component;
  const navigationOptions = ({ navigation }) => {
    const { title } = navigation.state.params;
    return {
      header: (
        <Navbar
          navigation={navigation}
          title={title}
          onBackPress={() => navigation.navigate('Dashboard')}
        />
      )
    };
  };

  return <ComponentWithNavigation {...props} navigationOptions={navigationOptions} />;
};

export default withNavigationOptions;


在您的情况下,不会将static选项提供给返回的组件,因为您将其添加到了呈现的组件而不是返回的功能组件上。

关于javascript - 如何在React中通过HOC传递静态NavigationOptions?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57985478/

10-11 23:59
查看更多