我在一个阵营原生应用正与阵营导航和阿波罗。
要设置页眉标题,您通常使用navigationOptions
:
class DemoComponent extends React.Component {
public static navigationOptions = ({navigation}) => ({
title: navigation.getParam("myParam", "Default title")
})
public render() {
// ...
}
}
与阿波罗,我在我的包裹在组件另:
export default () => (
<DemoMutation mutation={DEMO_MUTATION}>
{(mutation, result) => <DemoComponent mutation={mutation} result={result} />}
</JoinGroupMutation>
);
这意味着,navigationOptions
永远不会被读取,标题标题是空的。我试过传承navigation
作为道具,但不工作(navigationOptions
是一个静态的功能,不依靠道具)。
我能想到的一种解决方法,例如使用自定义首部组件,然后从navigation
部件向下流过<DemoMutation>
支柱,然后手动调用navigation.setParam()
。这似乎有点违反直觉,但 - 有没有嵌套组件使用navigationOptions
更简单的方法?
对此的解决方案是吊装静态函数的高次成分。有一个库调用hoist-non-react-statics
所做的正是这一点。
export default hoistNonReactStatics(DemoMutation, DemoComponent);