javascript - navigate - reactive native expo




스택 탐색기에서 헤더 숨기기 (9)

타겟 화면에서 이것을 코딩해야합니다!

 static navigationOptions = ({ navigation }) => {
    return {
       header: null
    }
 }

스택 및 탭 탐색기를 사용하여 화면을 전환하려고합니다.

const MainNavigation = StackNavigator({
      otp: { screen: OTPlogin },
      otpverify: { screen: OTPverification},
      userVerified: {
        screen: TabNavigator({
          List: { screen: List },
          Settings: { screen: Settings }
        }),
      },
    });

이 경우에는 먼저 stacknavigator가 사용 된 다음 tabnavigator가 사용됩니다. 나는 스택 네비게이터의 헤더를 숨기고 싶다. 내가 navigationoptions를 사용할 때 제대로 작동하지 않습니다 ::

navigationOptions: { header: { visible: false } }

stacknavigator에서 사용하는 처음 두 구성 요소에서이 코드를 사용하려고합니다. 이 줄을 사용하면 다음과 같은 오류가 발생합니다 ::


componentDidMount에서 헤더를 토글하는 방법을 검색하는 누군가가 다음과 같이 작성하면 :

  this.props.navigation.setParams({
      hideHeader: true,
  });

언제

static navigationOptions = ({ navigation }) => {
    const {params = {}} = navigation.state;

    if (params.hideHeader) {
      return {
        header: null,
      }
    }

    return {
        headerLeft: <Text>Hi</Text>,
        headerRight: <Text>Hi</Text>,
        headerTitle: <Text>Hi</Text>
    };
};

그리고 이벤트가 끝날 때 어딘가에 :

this.props.navigation.setParams({
  hideHeader: false,
});

다음과 같이 특정 화면에서 숨기려면 :

// create a component
export default class Login extends Component<{}> {
  static navigationOptions = { header: null };
}

모든 대답은 클래스 구성 요소를 사용하여 수행하는 방법을 보여 주지만 기능 구성 요소의 경우에는 다음을 수행하십시오.

const MyComponent = () => {
    return (
        <SafeAreaView>
            <Text>MyComponent</Text>
        </SafeAreaView>
    )
}

MyComponent.navigationOptions = ({ /*navigation*/ }) => {
    return {
        header: null
    }
}

머리글을 제거하면 구성 요소가 보이지 않는 곳에있을 수 있습니다 (전화에 사각형 화면이 없을 때). 따라서 헤더를 제거 할 때 구성 요소를 사용하는 것이 중요합니다.


용도

class Login extends Component {

    static navigationOptions = {
        header: null
    }
}

클래스 / 구성 요소

static navigationOptions = {
   header : null   
};

이것은 나를 위해 일했다 :

const Routes = createStackNavigator({
Intro: {
    screen: Intro,
    navigationOptions: {
        header: null,
    }
}
},
    {
        initialRouteName: 'Intro',
    }
);

헤더를 숨기려는 페이지에서 아래 코드를 사용하기 만하면됩니다.

export default class Login extends Component {
    static navigationOptions = {
        header: null
    }
}

스택 네비게이터 참조


화면이 클래스 구성 요소 인 경우

static navigationOptions = ({ navigation }) => {
    return {
       header: () => null
    } 
}

첫 번째 방법 (함수)으로 대상 화면에이 코드를 작성하십시오.


const CallStack = createStackNavigator({
  Calls: Calls,
  CallsScreen:CallsScreen,
}, {headerMode: 'none'});

CallStack.navigationOptions = {
  tabBarLabel: 'Calls',
  tabBarIcon: ({ focused }) => (
    <TabBarIcon
      focused={focused}
      name={Platform.OS === 'ios' ? 'ios-options' : 'md-options'}
    />
  ),

   header: null,

        headerVisible: false,

};




expo