2017-07-09 33 views
0

我試圖動態地改變我的react-navigation導航欄的標題:陣營導航:動態名並未發生變化

componentDidMount() { 
    InteractionManager.runAfterInteractions(() => 
     this.props.navigation.setParams({ title:"New Title" }); 
    }); 
} 

雖然我可以驗證這個函數被調用時,導航欄不會更改爲「新標題。」

我是否將錯誤的對象傳入setParams()函數?

回答

2

反應導航不會從params對象讀取標題。它使用組件上的navigationOptions靜態屬性。當您設置帕拉姆標題應該改變

static navigationOptions = ({navigation}) => { 
    title: navigation.state.params.title 
} 

然後:

您可以在屬性設置爲一個功能。

+0

感謝您的回答。當應用程序首次加載導航堆棧的第一個屏幕並且對象navigation.state.params.title未定義時,如何避免出現錯誤? –

+0

您可以在路徑定義中傳遞初始參數(當創建導航器時),或者只是在'navigationOptions'代碼中測試它,並且在那裏有默認值。 – Kraylog

+0

是的,我最終做的是添加邏輯來處理分配給標題的變量不存在的情況,然後爲標題返回驗證值。 –