['string'が「String」と入力されていないというエラーが発生しているというエラーが発生していません。誰かがこのバグを解決するのを手伝ってくれることができます。
事前にありがとうございました。] 1
コードスニペット :
const loadReport = (id: string) => {
setPostId(id);
navigation.navigate('Report', {postId: id});
}
_
私は 'Report'の下に下線を取得します。
useNavigation
に注釈を付けると、navigation.navigate('OtherJazzyScreen
)を注意しない場合は、次のTSエラーが発生しました。
Argument of type 'string' is not assignable to parameter of type '{ key: string; params?: undefined; merge?: boolean | undefined; } | { name: never; key?: string | undefined; params: never; merge?: boolean | undefined; }'
OPは使用しているReact-Navigationのバージョンを指定していませんが、このグローバルにReactナビゲーション6では、useNavigation
直接注釈を付ける必要はありませんが、まだオートコンプリートを入手する必要はありません。タイプチェック.
2021年8月のReact-Navigation Blogから取得された( https://reactnavigation.org/blog/2021/08/14/react-navigation-6.0/#better-type-safety ):
Reactナビゲーション6では、
useNavigation
を注釈に付ける必要はありません。これは、宣言マージを使用してグローバルに画面のタイプを定義することによって可能です。declare global { namespace ReactNavigation { interface RootParamList { Home: undefined; Profile: { userId: string }; NotFound: undefined; } } }
あなたは読むことができます 私たちのTysscript Docsの詳細 。
Reactナビゲーション6ドキュメントからの別の例では、すでにパラメータが他の場所で宣言されている場合:
// E.g. RootStackParamList.ts
export type RootStackParamList = {
Home: undefined;
Profile: { userId: string };
NotFound: undefined;
};
// E.g. App.tsx
import { RootStackParamList } from 'path/to/RootStackParamList';
declare global {
namespace ReactNavigation {
interface RootParamList extends RootStackParamList {}
}
}