Реагировать на native с машинописью - как использовать useRoute из @ реагировать на навигацию / натив с машинописью - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь получить свой инцидент объект из route.params, но я не знаю, как это сделать, чтобы машинопись распознала этот объект.

Вот функция, которая перейдите к моей детализации передаче страницы инциденту в параметры:

const navigateToDetail = (incident: IncidentProps): void => {
    navigation.navigate('Detail', { incident });
  };

И вот часть кода страницы детали, где я пытаюсь получить этот объект из route.params :

type IncidentRouteParams = {
  incident: IncidentProps;
}

const Detail: React.FC = () => {
  const navigation = useNavigation();
  const route = useRoute();

  const incident = route.params.incident;

Я думаю, мне нужно как-то передать этот IncidentRouteParams тип const route = useRoute ()

Заранее спасибо.

Вот изображение с ошибкой

РЕДАКТИРОВАТЬ:

Я сделал это, и это сработало, но я не не знаю, если это правильный путь:

  const route = useRoute<RouteProp<Record<string, IncidentRouteParams>, string>>();

  const incident = route.params.incident;

1 Ответ

1 голос
/ 28 марта 2020

Только что сделал это вчера!

TLDR: сначала вам нужно определить тип с каждым отображаемым именем и полученными параметрами:

type ParamList = {
  Detail: {
    incident: IncidentProps;
  };
};

Затем вы используете этот параметр и отображаемое имя в RouteProp:

const route = useRoute<RouteProp<ParamList, 'Detail'>>();

Вот документы, объясняющие все это https://reactnavigation.org/docs/typescript

...