我使用react navigation。我有一個TabNavigator
。每個Tab
包含一個StackNavigator
。從一個StackNavigator
,可以打開Modal
。 Modal
在我點擊某個Component
中的Button
時被打開。將道具從Modal傳遞到其他組件反應導航
export default class CallModalComponent extends Component {
constructor(props) {
super(props)
...
}
...
render() {
const { navigate } = this.props.navigation;
return (
<Button
....
onPress={() => navigate("Modal")}/>
中TabNav
註冊屏幕<MyModal />
是有狀態Component
。 關閉Modal
我需要的<MyModal />
傳遞到<CallModalComponent />
。
我遇到的問題是如何可以與react navigation
之間...我知道我可以使用redux
並通過global store
發送/檢索它。但我不知道它是否可能只有react native
。 有什麼建議嗎?
編輯
我實現了代碼的答案
export default class CallModalComponent extends Component {
constructor(props) {
super(props)
...
}
...
onModalDismis(childVar) {
console.log('modal is closing');
console.log(childVar);
}
render() {
const { navigate } = this.props.navigation;
return (
<Button
....
onPress={(childVar) => navigate("Modal", {onModalDismis: this.onModalDismis()})}/>
// Then in your modal component
componentWillUnmount() {
console.log('unmount');
this.props.navigation.state.params.onModalDismis('here we go');
}
下獲取記錄: 當Modal Component
安裝我得到:
modal is closing
undefined
然後,當我真正關閉Modal
,我得到:
unmount
,然後錯誤:
Cannot read property of onModalDismiss of undefined.
我預計沒什麼登錄的Modal
的安裝。然後,當我關閉Modal
我預計
unmount
,modal is closing
和here we go
被記錄。
你能否指點我可以閱讀的文檔? – Stophface
@Stophface已更新回答 – bennygenel
我認爲你實現的代碼錯了。更新你的問題與你到目前爲止,所以我可以有一個更好看 – bennygenel