2017-07-09 26 views
0

我遇到了反應本地導航和嵌套導航器的問題。在頁眉中反應本地導航類功能

基本上,嵌套的導航器(頁面中的標籤)工作得很好。但是當我用_saveDetails函數在標題中添加一個按鈕時,如果我在播放器選項卡中,它會引起我一個未定義的函數,並且當我處於團隊選項卡時它運行良好。

有沒有人有想法我做錯了什麼?謝謝。

class HomeScreen extends React.Component { 
    static navigationOptions = ({ navigation }) => { 
    const { params = {} } = navigation.state; 
    return { 
     headerRight: <Button title="Save" onPress={() => 
     params.handleSave()} /> 
    }; 
    }; 

    _saveDetails() { 
    console.log('clicked save'); 
    } 

componentDidMount() { 
    this.props.navigation.setParams({ handleSave: this._saveDetails }); 
} 

render() { 
    return (
     <View /> 
    ); 
    } 
} 

const MainScreenNavigator = TabNavigator({ 
    Players: { screen: HomeScreen}, 
    Teams: { screen: HomeScreen}, 
}); 

const SimpleApp = StackNavigator({ 
    Home: { screen: MainScreenNavigator }, 
    Player: { screen: PlayerPage }, 
}); 

回答

0

請嘗試這一個,讓我知道你是否獲取任何其他問題。只需根據下面的代碼轉換您的代碼。

靜態navigationOptions = { 頭:(導航,報頭)=>({ ...頭, 右:( navigation.navigate( '設置')}> 設置 ) }) } 感謝

0

只是改變成了這個樣子

class HomeScreen extends React.Component { 
    static navigationOptions = ({ navigation }) => { 
    // const { params = {} } = navigation.state; //delete this 
    return { 
     headerRight: <Button title="Save" onPress={() => 
     navigation.state.params.handleSave()} /> // add navigation.state 
    }; 
    }; 

..... 
代碼