ベストアンサー1
これは RN > 0.65 で発生する奇妙な問題です。私の解決策は次のとおりです。
1.- 輸入:
{/* Depends of your Package (Stack or NativeStack...) */}
import { StackNavigationProp } from '@react-navigation/stack';
import { useNavigation } from '@react-navigation/core';
2.- 型を定義する
export type RootStackParamList = {
YourScreen: { id: number } | undefined;
};
3.- StackNavigationProp タイプの useNavigation フックを割り当てます。
const navigation = useNavigation<StackNavigationProp<RootStackParamList>>();
4.- 使用してください! (目: このタイプを使用すると、ナビゲーション オブジェクトにアクセスできます)
<TouchableOpacity
// Use this when you pass a parameter (is optional)
onPress={() => navigation.navigate('YourScreen', {id: 5})}>
</TouchableOpacity>
5.- 次の点に注意してください:
undefined を指定すると、ルートにパラメータがないことを意味します。undefined のユニオン型 =>任意のタイプ | 未定義パラメータがオプションであることを意味します。
useNavigation const には特別な型があり、この最終的な型は 3 つのジェネリックを受け取ります。
パラメータリストオブジェクト =>ルートスタックパラメータリスト
スクリーンルートの名前 =>ルート名
ナビゲーターのID(オプション)=>ナビゲーターID
から得られました:https://reactnavigation.org/docs/typescript/#annotating-usenavigation