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