【发布时间】:2021-10-08 10:16:35
【问题描述】:
帮助,
首先,React Native 6 或 5 有 withNavigation 吗?我在 React Native 网站的文档中找不到它。
所以,我找到了一些线程,我们可以像这样构建自己的 withNavigation :
withNavigation.js
import React from 'react';
import { useNavigation } from '@react-navigation/native'; // not sure package name
export const withNavigation = (Component) => {
return (props) => {
const navigation = useNavigation();
return <Component navigation={navigation} {...props} />;
};
};
但我不知道如何调用或使用自己的构建 withNavigation。
这是我的源代码:
ResultList.js
import React from 'react';
import { View, Text, StyleSheet } from 'react-native';
import { FlatList, TouchableOpacity } from 'react-native-gesture-handler';
import ResultsDetail from './ResultsDetail';
import { withNavigation } from '../helper/withNavigation';
const ResultList = ({ title, results }) => {
console.log(withNavigation.component);
return (
<View style={styles.container}>
<Text style={styles.title}>{title}</Text>
<FlatList
horizontal={true}
showsHorizontalScrollIndicator={false}
data={results}
keyExtractor={(results) => results.id}
renderItem={({item}) => {
return (
<TouchableOpacity onPress={() => withNavigation('ResultShowScreen')}>
<ResultsDetail results={item} />
</TouchableOpacity>
)
}}
/>
</View>
)
};
const styles = StyleSheet.create({
title: {
fontSize: 18,
fontWeight: 'bold',
marginLeft: 15,
marginBottom: 5,
},
container: {
marginBottom: 10
}
});
export default ResultList;
在这里:
console.log(withNavigation.component)
它显示:未定义
如何用我们自己的 withNavigation 获取导航道具?
谢谢
【问题讨论】:
标签: react-native react-native-navigation