2017-09-13 133 views
2

我使用來自react-native-router-flux^4.0.0-beta.21和react-native-vector-icons的導航標籤。選擇場景時,如何更改圖標或更改所選場景圖標的顏色?react-native-router-flux選項卡如何更改選定選項卡的圖標?

<Scene 
     key='navigationTab' 
     tabs 
     tabBarStyle={styles.tabBarStyle} 
     showLabel={false} 
> 
     <Scene 
       key='home' 
       hideNavBar 
       icon={SimpleLineIcon} 
       name='home' 
       size={25} 
       component={PostList} 
       initial 
     /> 
     <Scene 
       key='profile' 
       hideNavBar 
       icon={FontAwesomeIcon} 
       name='user-o' 
       size={25} 
       component={Register} 
     /> 
</Scene> 

現在我已經定義了一個像下圖一樣的圖標,但是如何傳遞像焦點道具之類的東西?

const iconBack =() => (
     <TouchableHightLight onPress={console.log('home')} > 
       <MaterialIcon 
         name='keyboard-arrow-left' 
         size={28} 
       /> 
     </TouchableHightLight> 
); 
+0

感謝所有的幫助下從你們!我沒有得到這個正確的,因爲我通過'選擇'到我的圖標選擇功能。但是,它應該是'重點'。 – frogLuan

回答

4

可以recive作爲參數圖標渲染功能聚焦PARAM,然後檢查目前的圖標是重點。

例如:

const SimpleLineIcon= ({ title, focused }) => { 
    let image; 

    switch (title) { 
     case 'firstTab': 
      image = focused ? require('firstTabSelected.gif') : require('firstTab.gif'); 
      break; 

     case 'secondTab': 
      image = focused ? require('secondTabSelected.gif') : require('secondTab.gif'); 
      break; 
    } 

    return (<Image source={image} />); 
} 
0

我使用常量打電話給我tabIcons

import Icon from 'react-native-vector-icons/FontAwesome' 

const iconProfile =() => (
    <Icon color='#f53d3d' name='user-o' size={25} /> 
) 

...

<Scene 
    key='profile' 
    hideNavBar 
    icon={iconProfile} 
    name='profile' 
    component={Register} 
/> 
+0

對不起。我的意思是「當場景被選中時如何改變圖標的​​風格?」 – frogLuan

0
const SimpleLineIcon= ({ selected, title }) => { 
    let image; 

    switch (title) { 
     case 'firstTab': 
      image = require('firstTabSelected.gif') : require('firstTab.gif'); 
      break; 

     case 'secondTab': 
      image = require('secondTabSelected.gif') : require('secondTab.gif'); 
      break; 
    } 

    return (<Image source={image} />); 
} 
+0

很好的答案。通過解釋此代碼示例如何解決問題可以改進它。 –

+0

不客氣:-) – Hades0103

相關問題