Как изменить навигацию заголовка в том же компоненте?

мой навигационный экран initializeRoute - это main.js

main.js имеет onAuthStateChange для обнаружения изменений текущего пользователя

если текущий пользователь зарегистрирован, основной компонент рендеринга "ChatScreen" иначе основной рендеринг компоста "LoginScreen"

проблема в том, что chatScreen и LoginScreen имеют одинаковую панель заголовка навигации (основная панель заголовка)

Мне нужно, чтобы на экране входа в систему не было заголовка, а на экране чата

я пытался использовать
static navigationOptions = {header: null} в логине и чате, но заголовок, который мы видим, является заголовком main.js

если я установлю нулевой заголовок на главном экране чата, он тоже будет без заголовка

 class App extends React.Component {

  constructor() {
    super();
    this.unsubscriber = null;
    this.state = {
      user: null,
    };
  }


  componentDidMount() {
    this.unsubscriber = firebase.auth().onAuthStateChanged((user) => {
      this.setState({ user });
    });
  }

  render() {
    if (!this.state.user) {
      return <Login />;
    }

    return <Chat />;

  }

}
Умерло ли 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 без написания...
0
0
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение следующее: на экране main.js вы оставляете навигацию такой, какая она есть.

// main.js
static navigationOptions = ({ navigation }) => {
  return { title: "", header: null 
  };
};

Затем на экране ChatScreen вы персонализируете заголовок, не завися от библиотеки реагирования и навигации, вы делаете это персонализированным образом.

// Chat.js
class Chat extends Component {
render() {
return (
   <SafeAreaView>
    {/*header*/}
    <View style = {{justifyContent: 'center', alignItems: 'center'}}>
    <Text>Chat</Text>
    </View>
    {/*body*/}
    <View>
    </View>
    </SafeAreaView>
    );
   }
} 
export default Chat;

Дочерний компонент Чат должен получить свойства навигации

<Chat navigation = {this.props.navigation} />

и в свою очередь чат дети должны быть пропущены.

<SonChat navigation = {this.props.navigation} />

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

Как исправить «Значение типа '(FirebaseUser) → Null' не может быть присвоено переменной типа '(AuthCredential) → void'."?
Как один угловой компонент скажет другому обновиться без ручного обновления всей страницы
Как получить доступ к данным запрашивающего пользователя в firestore
FirebaseAuth устанавливает таймер для sendPasswordResetEmail и sendEmailVerification, прежде чем будет разрешен следующий запрос
Меня перенаправили на "www.google.com" после входа в систему с помощью Google Cordova
Как обновить данные пользователя в Firebase Authentication
Добавить учетную запись в диспетчер учетных записей после пользовательского интерфейса аутентификации Firebase
Аутентификация по номеру телефона Firebase: ни одна из следующих функций не может быть вызвана с предоставленными аргументами
Как я могу создавать настраиваемые утверждения в onCreate?
Как установить правила безопасности firebase cloud firestore с аутентификацией firebase