2017-02-22 23 views
6

Tôi đang sử dụng số react-navigation chính thức để xử lý điều hướng của mình. Tôi có một TabNavigator chính cho toàn bộ ứng dụng với hai tab (gọi tắt là HitchhikingMapNavigatorSettingsNavigator dưới đây), và mỗi tab có một StackNavigator lồng nhau:Phản ứng điều hướng: Không thể ẩn tiêu đề với các trình điều hướng lồng nhau

const HitchhikingMapNavigator = StackNavigator({ 
    hitchhikingMap: { screen: HitchhikingMapViewContainer }, 
    spotDetails: { screen: SpotDetailsViewContainer } 
}, { 
    navigationOptions: { 
    header: { 
     visible: false 
    } 
    } 
}); 

const SettingsNavigator = StackNavigator({ 
    // some other routes 
}); 

export default AppNavigator = TabNavigator({ 
    hitchhikingMap: { screen: HitchhikingMapNavigator }, 
    settings: { screen: SettingsNavigator } 
}, { 
    navigationOptions: { 
    header: { 
     visible: false, 
    }, 
}, 
}); 

Như bạn thấy, tôi đặt visilibility các tiêu đề để sai ở khắp mọi nơi, ngay cả trong HitchhikingMapViewContainer tôi 's xem:

class HitchhikingMapView extends React.Component { 

    static navigationOptions = { 
    title: 'Map', 
    header: { 
     visible: false, 
    }, 
    //...other options 
    } 

Tuy nhiên, thanh tiêu đề là vẫn còn nhìn thấy:

screenshot

Nếu tôi không lồng các công cụ điều hướng (tức là nếu tôi đặt mã này, bỏ qua mã lồng nhau):

export default AppNavigator = TabNavigator({ 
    hitchhikingMap: { screen: HitchhikingMapViewContainer }, 
    settings: { screen: SettingsNavigator } 
}); 

thì tiêu đề được ẩn chính xác.

Vì vậy, kết luận: Tôi không thể tạo tiêu đề không hiển thị khi tôi có hai trình điều hướng lồng nhau. Bất kỳ ý tưởng?

Trả lời

10

Đối với những người vẫn đang tìm kiếm câu trả lời, tôi sẽ đăng nó ở đây.

Vì vậy, hai giải pháp:

giải pháp 1: sử dụng headerMode: 'none' trong StackNavigator. Thao tác này sẽ xóa tiêu đề khỏi TẤT CẢ màn hình trong StackNavigator

Giải pháp thứ hai: sử dụng headerMode: 'screen' trong StackNavigator và thêm header: { visible: false } trong navigationOptions của màn hình mà bạn muốn ẩn tiêu đề.

Thông tin thêm có thể được tìm thấy ở đây: https://reactnavigation.org/docs/navigators/stack

+4

Đối với tiêu đề React Navigation 1.0.0-beta.11: {visible: false} không hoạt động. Sử dụng tiêu đề: null để thay thế. –

2

này đã làm việc cho tôi:

headerMode: 'none' 
+1

không hoạt động đối với tôi trong "điều hướng phản ứng": "^ 1.0.0-beta.7" ' –

+2

Tôi có" phản ứng điều hướng ":"^1.0.0-beta.9 "và method -> static navigationOptions = {header: false} làm việc cho tôi. –

+0

@DanielArenas Bạn là anh hùng anh hùng của tôi –

6

Bắt đầu từ v1.0.0-beta.9, sử dụng sau đây,

static navigationOptions = { 
    header: null 
} 
0

này Làm việc đối với tôi, tôi đang làm việc trên bên android trong phản ứng phiên bản bản địa 0,45

static navigationOptions = { 
    header: null 
} 
0

Điều này giúp tôi ẩn điều hướng:

static navigationOptions = { 
    header: null 
}; 
Các vấn đề liên quan