Как вызвать функцию из заголовка реакции-навигации? - PullRequest
0 голосов
/ 07 января 2020

Я на самом деле использую реагирующую навигацию https://reactnavigation.org/, у меня есть компонент с методом:

class Sing extends Component {
   singASong = () => {
     console.log('hello i am singing');
   }
}

этот компонент будет отображаться с реагировать-навигация и пользовательский заголовок , вопрос: как вызвать метод singASong из пользовательского заголовка?:

const routeStackNavigation = {
  SingingMode: {
    screen: Sing,
    navigationOptions: ({ navigation }) => ({
      header: (
        <CustomNav onPressAction={() =>{
                 // how to call the method singASong from here ?
                }
              }
        />
      ),
    }),
  },
};

ОБНОВЛЕНИЕ

Я устанавливаю и проверяю значение следующим образом:

  this.props.navigation.setParams({'onPress': 'akumen' });
    setTimeout(() => {
      console.log(this.props.navigation.getParam('onPress')); // akumen
    }, 2000);

И я проверяю значения с помощью:

      onPress={() =>{
        console.log('NAVIGATION',navigation);
        console.log('ON PRESS',navigation.getParam('onPress'));
        console.log('PARAMS',navigation.state.params);
        return navigation.getParam('onPress');
        }
      }

, но получаю неопределенное значение

Undefined Values

ДЛЯ НАВИГАЦИИ СТЕКА

Ниже я делюсь пи c с моим примером из реального мира, это была навигация по стеку, и я раньше не замечал, но параметр, который он только что установил под правым стеком, так что возьмите это за мотив для изучения:

1 Ответ

1 голос
/ 07 января 2020

Вы можете использовать параметры навигации:

В componentDidMount

this.props.navigation.setParams({onPressAction: ()=>this.singASong()})

В навигационных параметрах

<CustomNav onPressAction={navigation.getParam("onPressAction") }/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...