您應該使用「風格」,物業的場景爲。 這是我如何做一個黑色的TabBar白色圖標與白色字體
<Scene key='mainScenes'
hideNavBar={false}
navigationBarStyle={{ backgroundColor: COLORS.HEADER_BACKGROUND}}
leftButtonIconStyle = {{ tintColor:'white'}}
titleStyle={{color: 'white', fontSize: normalize(14), fontWeight: 'bold'}}
tabs={true}
translucent={false}
style={s.tabbar}
>
<Scene icon={TabIcon} key='events' hideNavBar={false} title='Events' titleStyle={{color:'white'}}
navigationBarStyle={{ backgroundColor: COLORS.HEADER_BACKGROUND}}
component={EventsViewScene} sceneStyle={getScreenContainerStyle()} >
</Scene>
<Scene icon={TabIcon} key='locations' hideNavBar={false} title='Locations' titleStyle={{color:'white'}}
navigationBarStyle={{ backgroundColor: COLORS.HEADER_BACKGROUND}}
component={LocationsViewScene} sceneStyle={getScreenContainerStyle()}
/>
<Scene icon={TabIcon} key='search' hideNavBar={false} title='Search' titleStyle={{color:'white'}}
navigationBarStyle={{ backgroundColor: COLORS.HEADER_BACKGROUND}}
component={SearchViewScene} sceneStyle={getScreenContainerStyle()}
initial={false}
/>
<Scene icon={TabIcon} key='more' hideNavBar={false} title='More' titleStyle={{color:'white'}}
navigationBarStyle={{ backgroundColor: COLORS.HEADER_BACKGROUND}}
component={InfoViewScene} sceneStyle={getScreenContainerStyle()}
initial={false}
/>
</Scene>
的樣式表:
const s = StyleSheet.create({
tabIcon: {
justifyContent: 'center',
alignItems: 'center',
},
rightButton: {
justifyContent: 'center',
alignItems: 'center',
width: normalize(23),
height: normalize(23),
},
tabbar: {
backgroundColor: 'black',
borderTopColor: 'white',
borderTopWidth: 2,
},
TabIcon:
const icons = {
'search': 'search',
'events': 'calendar',
'locations': 'map-marker',
'more': 'info-circle'
}
// Application
class TabIcon extends React.Component {
render(){
const {name, title} = this.props;
const iconName = icons[name] || 'info-circle'
return (
<View style={s.tabIcon}>
<Icon name={iconName} size={TAB_ICON_SIZE} color="white" />
<Text style={{color: this.props.selected ? 'yellow' :'white'}}>{title}</Text>
</View>
);
}
}
添加一個答案,我之前想問:你不是試圖重新路由路由器嗎?因爲這不是react-native-router-flux的工作方式。而不是**連接** Navigator類(渲染場景和路線),只需**將TabBarScene直接連接到redux。然後您可以在運行時更新其風格。 – eden
@EnieJakiro你可能有這方面的任何文檔鏈接?我有一個組件可以呈現從Redux接收更新的路由器。但是,當tabBarStyle接收到一個新的值時,它不會被重新渲染。 – Hobbyist
我只有經驗,不幸的是沒有任何文檔向您展示。你有沒有在你的課程中插入'componentWillReceiveProps(newProps)'函數?這樣你可以捕獲更新的樣式。對於這種情況,在更新到來之前,讓你的風格對象保持狀態。然後,當'componentWillReceiveProps'被觸發時,只需將新狀態設置爲** rerender **你的組件。 – eden