我在回应原生导航和嵌套导航器方面遇到了问题。
基本上,嵌套导航器(页面中的选项卡)工作得很好。但是当我使用_saveDetails函数在标题中添加一个按钮时,如果我在Players选项卡中,它会给我一个未定义的函数,并且当我在Teams选项卡上它运行良好
有没有人知道我做错了什么?感谢。
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 :(得分:0)
请尝试这个,如果您解决任何其他问题,请告诉我。只需根据以下代码转换代码即可。
static navigationOptions = { 标题:(导航,标题)=&gt; ({ ...头, 对: ( navigation.navigate(&#39;设置&#39;)}&GT; 设置 ) }) } 感谢
答案 1 :(得分: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
};
};
.....