对于反应导航的文档是很不清楚我如何自定义tabBarComponent
超出颜色简单地改变。我能够创建标签和点像,所以我的自定义组件;
import { TabNavigator } from 'myComponentsSomewhere'
...
const Navigator = createBottomTabNavigator(
{
Route1: Route1Component,
Route2: Route2Component,
...
},
{
tabBarComponent: props => <TabNavigator {...props} />,
tabBarOptions: {
activeTintColor: colors.first,
showLabel: false,
},
},
)
在TabNavigator
方面,我得到的道具,因为我所期望的负载;
activeTintColor: "#d85089",
getAccessibilityLabel,
getButtonComponent,
...
navigation,
...
内navigation
道具,我可以给state
,然后路线等等...但我不能断火的任何功能,让按钮或图标的渲染。 (renderIcon
,getButtonComponent
)
对这些函数的文档是弱,但看代码,好像它们都需要包含key
,routeName
等“路由”对象
该形状可以在navigation.state.routes
阵列中找到 - 但通过这些对象中的一个简单地引发错误;
Cannot read property 'key' of undefined
下面是该代码的错误的示例;
import React from 'react'
import { View, Text } from 'react-native'
const TabNavigator = props => {
return props.navigation.state.routes.map(route =>
props.getButtonComponent(route),
)
}
export default TabNavigator
最后,我希望能够写我自己的代码包含的标签,而不是仅限于通过代码来反应的导航标记。我不明白为什么没有在道具接收的渲染功能将工作时,通过一个完整的路由对象,径直出了导航道具