mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-28 20:35:19 +08:00
fix: add error message when trying to use v4 API with v5
This commit is contained in:
12
packages/core/src/__tests__/createNavigatorFactory.test.tsx
Normal file
12
packages/core/src/__tests__/createNavigatorFactory.test.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import createNavigatorFactory from '../createNavigatorFactory';
|
||||
|
||||
it('throws descriptive error if an argument is passed', () => {
|
||||
const createDummyNavigator = createNavigatorFactory(() => null);
|
||||
|
||||
expect(() => createDummyNavigator()).not.toThrowError();
|
||||
|
||||
// @ts-ignore
|
||||
expect(() => createDummyNavigator({})).toThrowError(
|
||||
"Creating a navigator doesn't take an argument."
|
||||
);
|
||||
});
|
||||
@@ -13,11 +13,17 @@ export default function createNavigatorFactory<
|
||||
ScreenOptions extends object,
|
||||
NavigatorComponent extends React.ComponentType<any>
|
||||
>(Navigator: NavigatorComponent) {
|
||||
return <ParamList extends ParamListBase>(): TypedNavigator<
|
||||
return function<ParamList extends ParamListBase>(): TypedNavigator<
|
||||
ParamList,
|
||||
ScreenOptions,
|
||||
typeof Navigator
|
||||
> => {
|
||||
> {
|
||||
if (arguments[0] !== undefined) {
|
||||
throw new Error(
|
||||
"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API with React Navigation 5?"
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
Navigator,
|
||||
Screen,
|
||||
|
||||
Reference in New Issue
Block a user