onBackAction = () => {
this.moveScreen('Settings');
}
...
<Item
title={i18n.t('Signin:myWalletAddressCheck')}
children={REF_ICON}
onPress={() => {
if(emailState === KYC_STATE_DONE && selfState === KYC_STATE_DONE && additionalState === '2') {
// navigation.navigate('ConfirmRegistration')
navigation.navigate('ConfirmAppPin', {
pinProps: {
description: i18n.t('Pincode:confirm'),
// biomatrics: false
},
cb: async () => {
navigation.navigate('ConfirmRegistration', {
action: this.onBackAction() // * 물리적으로 백버튼을 누르면 MyPage(Settings:MeScreen) 으로 이동된다.
})
}
});
} else {
this.showMyProccessWalletDialog = true
}
}
}
/>
RN의 코드에서 물리 백버튼을 이용해서 페이지 이동을 하는 경우가 있다.
물리백버튼은 BackHandler을 이용해야하는 줄 알았는데 잘못알고 있었다.
모바일은 Stack으로 쌓이는데 이 개념을 뒤늦게 알았다.
1, 2, 3 이 순차적으로 쌓이는 과정에서 3에서 전혀 쌩뚱맞은 9로 가려고 하면 안되고 2에서 9로 가게끔하는 경우는 된다. 이유는 2 -> 3을 가게했으니깐 Stack의 주권은 2에 있기 때문에?...
뭐라는건지 모르겠다... 어쨌든 navigate의 action 속성을 이용해서 물리백버튼을 handling을 했다.