Как пройти навигацию через метод?

Я новичок в реакции-навигации, и я хотел бы передать «навигацию» в качестве реквизита, чтобы я мог ее использовать. Потому что, когда я пытался использовать его в другом compo, он выдает сообщение об ошибке «undefined this.props.navigation и т. д.»

Итак, вот что я хотел бы сделать

            goto = {()=>this.props.navigation.navigate('ChatBox', {
                avatarUrl: matches.avatarUrl,
                name: matches.name,
                navigation: this.props.navigation 
              })}

Как вы можете видеть, я передаю навигацию через реквизиты своему компоненту с именем «ChatBox». Но проблема в том, что мой "ChatBox" compo не получает навигацию. Кто-нибудь может мне помочь? Благодарность

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
1
0
95
1

Ответы 1

Есть несколько концепций, которые, я думаю, вы упустили.

  1. Каждый компонент, упомянутый в классе навигатора стека, получает объект навигации в своей области видимости. Вы можете получить доступ к тому же, используя this.props.navigation()
  2. Если вам нужно передать объект навигации на любой другой экран, не упомянутый в классе навигатора стека, вам потребуется предоставить его в качестве реквизита, например <Chatbox navigation = {this.props.navigation} />.

В вашем случае ваш объект навигации отправляется правильно, просто вы ошибочно загружаете его в свой компонент Chatbox. Ваша навигация в качестве опоры инкапсулирована в самом объекте навигации (т.е. он присутствует в this.props.navigation.state.params.navigation), и, поскольку вы не упомянули компонент Chatbox в своем классе навигатора стека, вы не можете ссылаться на объект навигации, поскольку он в настоящее время выходит за рамки .

Так,

  1. Вы можете заменить компонент, отрисовав компонент <Chatbox/> и предоставив ему реквизиты (как указано в пункте 2 выше) вместо перехода к компоненту.
  2. Если вам нужно перейти к компоненту, вам потребуется определить экран Chatbox в классе навигатора стека, а затем вы сможете использовать свой объект навигации.

Другие вопросы по теме