当我使用useNavigation或从props {navigation}使用navigation.navigate('Home ')在屏幕之间导航时,typescript返回错误类型'"Main"'的参数无法分配给类型' {key:字符串;参数?:未定义;是否合并?:布尔的|未定义;}| {姓名:永不;键?:字符串|未定义;参数:从不;合并?:布尔的|undefined ;}'是什么意思?
下面是我代码:
import React from 'react';
import { View } from 'react-native';
import { Button } from 'react-native-paper';
import { useNavigation } from '@react-navigation/native';
const Home: React.FC = () => {
const navigation = useNavigation();
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Button onPress={() => navigation.navigate('Main')}>Navigate</Button>
</View>
);
};
export default React.memo(Home);
以前我使用了react navigation v5和使用该方法的工作find
谢谢你的帮助
7条答案
按热度按时间guicsvcw1#
也许你想这样做:
然后在代码中执行类似以下操作:
ecbunoof2#
这是因为您必须指定这个型别,因为这样可以确保型别安全。
解决方法:
1-检查导航器的类型
2-指定根浏览器的全局类型
3-使用它!
参考文献:
ovfsdjhp3#
我解决了这个问题,很简单:
sigwle7e4#
虽然其他答案涵盖了大量内容,但我想我可以通过描述
useNavigation
钩子中的用法以及通过道具将{navigation}
传递到屏幕来补充这一点。useNavigation
挂钩时:希望这对某人有用!
brvekthn5#
有关更多详细信息,请参阅此article。
crcmnpdw6#
我认为最好的办法是这样的:
1.在此文件中创建一个@types/index.ts文件,并粘贴代码:
1.现在您只需要使用navigationProps作为useNavigation示例的泛型:
pdsfdshx7#
你可以在屏幕名称上加上一个类型。就像: