react-native - React Native 找不到变量:导航
问题描述
我正在做堆栈导航,但我似乎无法导航我会收到此错误“找不到变量:导航”这是我的 android 模拟器的屏幕截图
这是我的应用程序类(主要)
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<Header/>
<AppNavigator/>
</View>
);
}
}
const AppNavigator = StackNavigator({
Cluster1: {
screen: Cluster1,
},
Play: {
screen: Play,
},
});
这是我的 Cluster1 类
export default class Cluster1 extends Component{
render(){
return(
<View>
<SectionList
renderSectionHeader={({ section }) => {
return (<SectionHeader section={section} />);
}}
sections={ClusterData}
keyExtractor={(item, index) => item.name}
>
</SectionList>
</View>
);
}
}
class SectionHeader extends Component {
render() {
return (
<View style={styles.header}>
<Text style={styles.headertext}>
{this.props.section.title}
</Text>
<TouchableOpacity onPress={() => { navigate("Play");}}>
<Text style ={styles.Play}>Play
</Text>
</TouchableOpacity>
</View>
);
}
}
解决方案
导航对象只存在于屏幕组件中。(不存在于嵌套组件中)。您可以使用道具将其传递给嵌套组件
export default class Cluster1 extends Component{
render(){
return(
<View>
<SectionList
renderSectionHeader={({ section }) => {
return (<SectionHeader navigation={this.props.navigation} section={section} />);
}}
sections={ClusterData}
keyExtractor={(item, index) => item.name}
>
</SectionList>
</View>
);
}
}
class SectionHeader extends Component {
render() {
return (
<View style={styles.header}>
<Text style={styles.headertext}>
{this.props.section.title}
</Text>
<TouchableOpacity onPress={() => { this.props.navigation.navigate("Play");}}>
<Text style ={styles.Play}>Play
</Text>
</TouchableOpacity>
</View>
);
}
}
推荐阅读
- python - 有没有办法将具有值范围的列添加到 Spark Dataframe?
- javascript - 有没有办法将类的实例与该类实例的数组中的元素进行比较?
- android - 约束布局中心文本位置并结束对其他小部件的引用
- java - Java Android,默认文本视图颜色为灰色,看起来像提示文本颜色,如何纠正?
- javascript - 在javascript中函数执行期间使用参数进行操作的规则
- c# - 逐行读取文件时,如何将元素添加到数组中?
- python - Python - 读取包含字节和字符串的文件
- java - 我的 android studio 项目有问题
- javascript - 如何在 Formik 中使用 datalist 输入?
- python - 用于熊猫`idxmax`方法的时间复杂度/算法