反応するネイティブサイドメニューを使用して、これを参照して別のコンポーネントを表示しています。answerそれぞれのメニュー項目は、対応するコンポーネントを表示します。 メニューが開いているときに、現在の表示コンポーネントでメニュー項目を強調表示する方法がわかりません。反応したネイティブのサイドメニューで表示されたコンポーネントのメニュー項目を強調表示します
たとえば、メニュー項目の背景色をハイライト表示に変更していますが、表示されたコンポーネントに基づいてスタイルを切り替えるにはどうすればいいですか?
メニュー項目の成分:
module.exports = class Menu extends Component {
static propTypes = {
onItemSelected: React.PropTypes.func.isRequired,
};
render() {
return (
<ScrollView style={styles.menu}>
//the route is the menu items with component
{
routes.map((com) => {
return(
<Text key={com.id}
onPress={() => this.props.onItemSelected(com)}
style={styles.item}>
{com.name}
</Text>
)
})
}
</ScrollView>
);
}
}
sidemenu成分:スタイル小道具の[]を使用して
module.exports = class Main extends Component {
constructor(props) {
super(props);
this.state = {
isOpen: false,
selectedItem: routes[0],
};
}
toggle() {
this.setState({
isOpen: !this.state.isOpen,
});
}
updateMenuState(isOpen) {
this.setState({ isOpen, });
}
onMenuItemSelected = (item) => {
this.setState({
isOpen: false,
selectedItem: item,
});
}
render() {
const menu = <Menu onItemSelected={this.onMenuItemSelected} />;
let Component = this.state.selectedItem.compo ;
return (
<SideMenu
menu={menu}
isOpen={this.state.isOpen}
onChange={(isOpen) => this.updateMenuState(isOpen)}
openMenuOffset={SCREEN_WIDTH * 0.4}
>
{Component}
<Button style={styles.button} onPress={() => this.toggle()}>
<Image
source={require('./assets/menu.png')} style={{width: 35, height: 35}} />
</Button>
</SideMenu>
);
}
}
ブリリアント!!ストレートトゥーポイントありがとう! –
あなたは大歓迎です:) – Coyote