の背景色を変更します次のようになります。は私が<code>Navigator</code>をレンダリングする<code>React.Component</code>を拡張していますリアクトナビゲータオブジェクト
type Props = {
navigator: Navigator;
}
class BTMapView extends React.Component {
props: Props;
constructor(props: Props) {
super(props);
...
}
}
これで、this.props.navigator
のナビゲータオブジェクトを参照できるようになりました。このAPIを使用して、ナビゲーションバーの背景色を強制的にAPI呼び出しでオーバーライドするにはどうすればよいですか?
SOLUTION:
class BTNavigator extends React.Component {
constructor(props) {
super(props);
this.state = {
navBarStyle: styles.navBar,
};
}
render() {
return (
<Navigator
style={styles.container}
initialRoute={{}}
renderScene={this.renderScene}
navigationBar={
<NavigationBar
routeMapper={NavigationBarRouteMapper}
style={this.state.navBarStyle}
/>
}
/>
);
}
renderScene = (route, navigator) => {
...
// pass both navigator and a reference to this
return <LoginScreen navigator={navigator} btNavigator={this} />
}
setNavBarStyle(style) {
this.setState({
navBarStyle: style,
});
}
}
今navigator
とbtNavigator
を使用します。
type Props = {
navigator: Navigator,
btNavigator: BTNavigator,
};
class LoginScreen extends React.Component {
props: Props;
foo() {
this.props.btNavigator.setNavBarStyle({
backgroundColor: 'black',
});
this.props.navigator.push({
...
})
}
}
ありがとうございます!スタイルを 'state'に移してセッター関数を追加すると、私は問題を解決するのに役立ちました。 –
ここにあります。それが参考になった場合は、回答をアップしてください。 – neciu