Javascript 导航栏';s routeMapper不是一个函数
我有一个非常简单的导航条,我正试图连接起来。我想做的就是在我的页面顶部显示一个导航栏(稍后我会担心导航到其他页面)。但是,当我在Navigator上添加navigationBar道具时,会出现错误“this.props.routeMapper[componentName]不是函数”。如果我注释掉导航栏而不使用它,我的代码运行时不会出错 由于routeMapper应该是一个对象,我不确定它为什么会给出那个错误。我的代码贴在下面。我使用的是React原生v21。有什么想法吗Javascript 导航栏';s routeMapper不是一个函数,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个非常简单的导航条,我正试图连接起来。我想做的就是在我的页面顶部显示一个导航栏(稍后我会担心导航到其他页面)。但是,当我在Navigator上添加navigationBar道具时,会出现错误“this.props.routeMapper[componentName]不是函数”。如果我注释掉导航栏而不使用它,我的代码运行时不会出错 由于routeMapper应该是一个对象,我不确定它为什么会给出那个错误。我的代码贴在下面。我使用的是React原生v21。有什么想法吗 var routeMap
var routeMapper = {
title: function() {
return (
<View><Text>Title</Text></View>
);
}
};
class TryNavigator extends Component {
renderScene(route, nav) {
return (
<View>
<Text>Hi</Text>
</View>
);
}
render() {
return (
<Navigator
initialRoute={{id: 0, title: 'My Page'}}
renderScene={this.renderScene}
navigationBar={
<Navigator.NavigationBar
routeMapper={routeMapper}
/>
}
/>
);
}
}
var路由映射={
标题:函数(){
返回(
标题
);
}
};
类TryNavigator扩展组件{
渲染场景(路线、导航){
返回(
你好
);
}
render(){
返回(
);
}
}
NavigationBarRouteMapper采用三个函数参数:
LeftButton(route, navigator, index, navState) {
// some component or null
}
RightButton(route, navigator, index, navState) {
// some component or null
}
Title(route, navigator, index, navState) {
// some component or null
}
试着这样做:
var NavigationBarRouteMapper = {
LeftButton(route, navigator, index, navState) {
if(index > 0) {
return (
<TouchableHighlight
underlayColor="transparent"
onPress={() => { if (index > 0) { navigator.pop() } }}>
<Text style={ styles.leftNavButtonText }>Back</Text>
</TouchableHighlight>)
}
else { return null }
},
RightButton(route, navigator, index, navState) {
if (route.onPress) return (
<TouchableHighlight
onPress={ () => route.onPress() }>
<Text style={ styles.rightNavButtonText }>
{ route.rightText || 'Right Button' }
</Text>
</TouchableHighlight>)
},
Title(route, navigator, index, navState) {
return <Text style={ styles.title }>MY APP TITLE</Text>
}
};
var NavigationBarRouteMapper={
LeftButton(路线、导航器、索引、导航状态){
如果(索引>0){
返回(
{if(index>0){navigator.pop()}}>
返回
)
}
else{return null}
},
右按钮(路线、导航器、索引、导航状态){
如果(route.onPress)返回(
route.onPress()}>
{route.rightText | |'右键'}
)
},
标题(路线、导航器、索引、导航状态){
返回我的应用程序标题
}
};
不久前,我在RouteMaper工作的情况下设置了一个演示。太棒了!我没有意识到我应该实现这三点。原来问题是我的标题是小写的,而不是大写的。啊。我也没意识到!