Реагировать на навигацию - импортировать файл на страницу навигации - PullRequest
0 голосов
/ 24 января 2020

Импорт этого файла

class Footer extends Component {
  _notifications = () => {
    const { navigate } = this.props.navigation;
    navigate('Ntf', {});
  }

  render() {
    return (<TouchableHighlight onPress={() => this._notifications()} ></TouchableHighlight>);
  }
}

Основной файл (React-Navigation - NavigationDrawerStructure).

import { Footer } from './Footer';
export default class HomePage extends Component {
render() {
    return (<View><Footer/></View>);
}

Нажмите кнопку _notifications после ошибки: undefined является объектом c .props .navigation.navigate Помогите мне, пожалуйста

1 Ответ

0 голосов
/ 24 января 2020

Только компоненты, определенные в маршрутах, имеют доступ к навигационным реквизитам, а не дочерним элементам этих компонентов!.

Решение: -

файл импорта

class Footer extends Component {
  _notifications = () => {
     this.props.NavigateToNTF()
  }

  render() {
    return (<TouchableHighlight onPress={() => this._notifications()} ></TouchableHighlight>);
  }
}

main file: -

import { Footer } from './Footer';
export default class HomePage extends Component {
render() {
    return (<View><Footer NavigateToNTF={()=> this.props.navigation.navigate('Ntf', {}) } /></View>);
}

Навигационные реквизиты недоступны в дочернем компоненте, поэтому при вызове навигационных реквизитов вы получаете неопределенное значение, но с этим решением мы отправляем реквизиты из родительского файла (основного файла) дочернему элементу. (файл экспорта), чтобы он работал!

Если это поможет! не забудьте мотивировать меня, вы знаете, что я имею в виду!

...