Лучшая практика для обработки имен маршрутов в React-Navigation v5 - PullRequest
2 голосов
/ 07 мая 2020

Я новичок, чтобы реагировать на навигацию, и мне интересно, как обрабатывать имена маршрутов для реакции-навигации v5.

Я начинаю внутренний шаблонный проект компании с реактивной навигацией в версии 4 и обновляю это до версии 5. Пока все работает нормально.

Проблема теперь в том, что в проекте использовался файл, в котором все имена маршрутов были определены следующим образом:

export const HOME_ROUTE = 'Home';
export const LOGIN_ROUTE = 'Login';
export const REGISTER_ROUTE = 'Register';

Это также работает в react-navigation v5.

Затем я хотел убрать предупреждения на любом типе навигационной опоры. В документации указано, что я должен добавить определение типа. Затем я столкнулся с первой проблемой.

С константами маршрута я бы хотел сделать это как-то так:

export type RootStackParamList = {
  HOME_ROUTE: undefined;
  LOGIN_ROUTE: undefined;
  REGISTER_ROUTE: undefined;
};

Это не работает, так как я не могу найти способ использовать константы в определении типа (что имеет смысл).

Я думал об удалении routeConstants вообще, но недостаток в том, что у меня нет автодополнения при вводе имен маршрутов, что может затруднить обнаружение ошибки. По крайней мере, я думаю, что это может случиться.

Есть ли какой-нибудь предпочтительный способ решения этой проблемы? Я изучил несколько других шаблонных проектов, но все они просто использовали строки в качестве имен маршрутов.

1 Ответ

2 голосов
/ 07 мая 2020

Благодаря коллеге я нашел решение:

Синтаксис для распаковки константы такой:

export type RootStackParamList = {
  [HOME_ROUTE]: undefined;
  [LOGIN_ROUTE]: undefined;
  [REGISTER_ROUTE]: undefined;
};
...