通过开关导航器传递参数以响应本机

时间:2020-06-17 00:55:08

标签: react-native react-navigation

我正在尝试通过开关导航器传递参数,但是它目前不起作用。我有两个单独的堆栈导航器和一个在两个导航器之间进行导航的开关导航器。第一个是登录/验证页面,另一个只是主主屏幕。

我获得了要通过第一个堆栈导航器(用于登录和验证)的参数,但是无法将数据传递到第二个堆栈导航器。

Verification.js-在这里我导航到主主屏幕,并在其中传递参数

    signin = async() => {
    const {state} = this.props.navigation;
    const { Name, Address, Phone, NPI } = state.params.item;

    await AsyncStorage.setItem("userToken", "user");

    this.props.navigation.navigate("App", {item: {
        Name: Name,
        Address: Address,
        Phone: Phone,
        NPI: NPI,
    }
    })
}

Homescreen.js-在这里我要接收这些参数,但是现在NPI是未定义的,并且没有参数

 writeUserData() {
        const {state} = this.props.navigation.state;
        const  NPI = state.params.item.NPI;

        const key = firebase.database().ref("/perscriptions").push().key;

        firebase.database().ref("/").child(key).set({
           surname: this.state.patientSurName,
           zip_code: this.state.zip_code,
           Sex: this.state.patientSex,
           DOB: this.state.patientDOB,
           Name: this.state.patientName,
           NPI: NPI

        })
        Alert.alert("Perscription Submitted!")


        this.reset_data()

    }

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

好吧,如果有人也想知道答案,您有两种选择:

  1. 您可以通过创建商店然后使用您的信息更新商店来使用react-redux。 (可能是最好的方法)。

  2. 您可以使用react-native内置的异步存储(绝对容易,但不是最佳方法)