Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 在标头中响应本机导航类函数_React Native_React Native Navigation - Fatal编程技术网

React native 在标头中响应本机导航类函数

React native 在标头中响应本机导航类函数,react-native,react-native-navigation,React Native,React Native Navigation,我对react本机导航和嵌套导航有问题 基本上,嵌套的导航器(页面中的选项卡)工作得很好。但是当我在标题中添加一个带有_saveDetails函数的按钮时,如果我在“玩家”选项卡中,它会抛出一个未定义的函数,如果我在“团队”选项卡上,它会很好地工作 有人知道我做错了什么吗?谢谢 class HomeScreen extends React.Component { static navigationOptions = ({ navigation }) => { const { p

我对react本机导航和嵌套导航有问题

基本上,嵌套的导航器(页面中的选项卡)工作得很好。但是当我在标题中添加一个带有_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 },
});
类主屏幕扩展React.Component{
静态导航选项=({navigation})=>{
const{params={}}=navigation.state;
返回{
头灯:
params.handleSave()}/>
};
};
_saveDetails(){
log(“单击保存”);
}
componentDidMount(){
this.props.navigation.setParams({handleSave:this.\u saveDetails});
}
render(){
返回(
);
}
}
常量MainScreenNavigator=TabNavigator({
玩家:{屏幕:主屏幕},
团队:{屏幕:主屏幕},
});
const simpleap=StackNavigator({
主页:{screen:MainScreenNavigator},
播放器:{screen:PlayerPage},
});

请尝试这一个,如果您遇到任何其他问题,请告诉我。只需根据下面的代码转换代码

静态导航选项={ 标题:(导航,标题)=>({ …标题, 对:( 导航。导航('Settings')}> 设置 ) }) }
谢谢

只要把代码改成这样就行了

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
    };
  };

.....
类主屏幕扩展React.Component{
静态导航选项=({navigation})=>{
//const{params={}}=navigation.state;//删除此项
返回{
头灯:
navigation.state.params.handleSave()}/>//添加navigation.state
};
};
.....