2017-03-07 107 views
0

初始標籤考慮下面的場景:如何設置從外部

<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> 

我在HomeComponent,Button1的和按鍵Button2的兩個按鈕。

我想在按鈕1單擊時顯示myTab_1,並在Button2單擊時顯示myTab_2。 我怎樣才能做到這一點?

+0

你如何給出更多細節? –

回答

0

其實它很簡單,但沒有文檔或討論的問題。爲了評估這一點,我們可以在repo src目錄中查看source code of TabBar

... (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](); 
    } 
    } 
} 

當我們點擊該標籤上,我們實際上調用它只是它的航線在TouchableOpacity Action.myTab_1()使用Action[tabbarbutton.props.name]()

爲您的代碼的功能onSelect(看看渲染部分)。

+0

對不起,延遲迴復。我之前嘗試過但它不工作。 –

+0

然後你的場景樹應該是錯的。你可以編輯並顯示你的路由器樹嗎? – eden