考虑以下场景:
<Scene key='home' component={HomeComponent} hideNavBar title={'home'}/>
<Scene key="myTabBar" tabs={true} hideNavBar tabBarStyle={style.tabBarStyle}>
<Scene
key="myTab"
title="My Tab"
icon={MyTabIcon}
component={MyTabComponent} hideNavBar />
<Scene
key="myTab_1"
title="My Tab 1"
icon={MyTabIcon}
component={MyTabComponent1} hideNavBar />
</Scene>
我在家庭组件,按钮1和按钮2中有两个按钮。
我想在按钮1点击时显示 myTab_1
,并在按钮2时显示mytab_2。我该如何实现?
实际上很简单,但是没有讨论的文档或问题。为了评估这一点,我们可以查看repo src目录中塔巴尔的源代码。
... (imports)
class TabBar extends Component {
...
static onSelect(el) {
if (!Actions[el.props.name]) {
throw new Error(
`No action is defined for name=${el.props.name} ` +
`actions: ${JSON.stringify(Object.keys(Actions))}`);
}
if (typeof el.props.onPress === 'function') {
el.props.onPress();
} else {
Actions[el.props.name]();
}
}
}
当我们单击选项卡本身时,我们实际上调用函数onSelect
(查看渲染部分),该功能只需使用Action[tabbarbutton.props.name]()
对于您的代码,其Action.myTab_1()
在您的touchableOpacity中。