Я сделал небольшой вспомогательный компонент
const NavHelper = ({ navigation, dest }) => {
return (
<TouchableOpacity onPress={() => navigation.navigate(`${dest}`)}>
<Text>Go to {dest}</Text>
</TouchableOpacity>
);
};
Он работает, отправляя навигацию в качестве реквизита.
<NavHelper navigation={navigation} dest="List" />
Но так как этот компонент всегда будет использовать навигацию, было бы неплохо, если бы я может получить доступ к навигации, не отправляя ее как реквизит, чтобы избежать повторения.
https://reactnavigation.org/docs/connecting-navigation-prop/
На домашней странице сказано, что вы можете сделать это, используя
import { useNavigation } from '@react-navigation/native';
const NavHelper = ({ dest }) => {
const navigation = useNavigation();
return (
<TouchableOpacity onPress={() => navigation.navigate(`${dest}`)}>
<Text>Go to {dest} Demo</Text>
</TouchableOpacity>
);
};
Но когда я пробую этот подход в моем компоненте, эмулятор говорит, что не может найти объект навигатора. Чего мне не хватает?