[英]Prevent user from swipe back or using physical back button to go back to splash screen
[英]Sending props back to any screen using back button override
我最近只在使用 React-Native。 出於這個原因,我需要幫助解決以下問題:
我確實覆蓋了堆棧導航器的 header 中的后退按鈕操作,以導航到任何屏幕。 我必須將道具“發回”到屏幕 xy。 我已經在幾個變體上嘗試過,但不幸的是收到錯誤消息(因為它不能按我的意願工作)或沒有得到預期的結果。 我將不勝感激。 謝謝!
static navigationOptions = ({navigation}) => ({
title: null,
headerStyle: {backgroundColor: 'transparent'},
headerLeft: <HeaderBackButton
onPress={() => {
this.props.navigation.state.params.returnData(CurrentServiceProvider,'ServiceProvider')
navigation.push('digitalCode'),{ Info1: SomeObject, Info2: SomeObject }
}}
/>
})
編輯:
屏幕 B:
export class ScreenB extends React.Component {
static navigationOptions = ({navigation}) => ({
title: null,
headerStyle: {backgroundColor: 'transparent'},
headerLeft: <HeaderBackButton onPress={() => {
navigation.state.params.goBackData({SomeObject, 'ObjectIdentifier'});
navigation.push('ScreenA')}
}
/>
})
}
屏幕 A:
export class ScreenA extends React.Component {
getBackData = (data) => console.log(data)
ForwardNextScreen(){
this.props.navigation.navigate('ScreenB', {goBackData: this.getBackData});
}
}
如果要將數據發送回上一個屏幕,正確的方法是在 navigationParams 上聲明回調( Github 問題)
屏幕A
getBackData = (data) => console.log(data)
changeScreen = () => this.props.navigation.navigate('ScreenB', { goBackData: this.getBackData })
屏幕B
this.props.navigation.state.params.goBackData({
//your data json or whatever
})
this.props.navigation.pop()
編輯
請更改您的從
headerLeft: <HeaderBackButton onPress={() => {
navigation.state.params.goBackData({SomeObject, 'ObjectIdentifier'});
navigation.push('ScreenA')}
}
/>
至
headerLeft: <HeaderBackButton onPress={() => {
navigation.getParam('goBackData')({SomeObject, 'ObjectIdentifier'});
navigation.pop();
}
/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.