Как мы можем передать состояние в качестве реквизита в функциональном компоненте, используя navigationOptions в React Native? - PullRequest
0 голосов
/ 23 марта 2020

Я новичок ie в React Native, и я хочу спросить, как мы можем передать состояние подключения в функциональном компоненте на другой экран, используя navigationOptions

Вот код:

const Screen = props => {
const [eventName, setEventName] = useState('');

  React.useLayoutEffect(() => {
    props.navigation.setOptions({
      headerRight: () => (

        <HeaderButtons HeaderButtonComponent={HeaderButton}>
          <Item 
            title="Finish"
            iconName={Platform.OS === 'adroid' ? 'done-all' : 'done-all'}
            onPress={() => {
              props.navigation.navigate('TripsListDetailScreen', {
                final_eventName: eventName,

              })
            }}
          />
      </HeaderButtons>
    )
    });
  }, [props.navigation]);

return(...);
}

Я пытаюсь передать eventName на другой экран. Поскольку мы должны стилизовать headerRight, используя navigationOptions вне компонента, например:

Screen.navigationOptions = data => {
    return(
        headerTitle:...,
        headerRight: ....

)
}

, мы не можем передавать параметры там. Поэтому я попробовал React.useLayoutEffect(), как описано в документах

Но на экране появляется ошибка:

Error

Пожалуйста, помогите

1 Ответ

0 голосов
/ 23 марта 2020

Я знаю, где проблема сейчас. Когда я регистрирую props.navigation, он не имеет функции setOptions. Более того, когда я оглянулся на do c, я обнаружил, что это из-за версии, которую я использую.

Я использую rea c -navigation v4, но props.navigation.setOptions доступен только в v5.

Как жаль: (

Спасибо @norbitrial за указание это для меня

Если у вас есть какой-либо ответ независимо от проблемы с версией, я был бы очень рад узнать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...