react-native-router-flux将道具传递给Tabbar组件

问题描述 投票:0回答:0

嗨,我正在尝试使用react-native-router-flux将数据传递到Tabbar Scene。 所以我有三个场景1:登录2:注册3:控制台

注册用户后,我会将用户从注册场景移到仪表板场景。 我正在使用Firebase,所以一旦创建用户,我就会得到一个uid。 我想将该uid作为道具传递给Tabbar视图。

我面临的问题是,如果我从场景中删除选项卡,然后将数据作为Actions.DASHBOARD({ uid: uid })的工作进行传递。

但是它不能与标签栏一起使用。 https://github.com/aksonov/react-native-router-flux/issues/1230在github上看到此错误。

还对stakoverflow和github进行了一些研究,发现我必须使用也Actions.jump("SCENE_NAME", {uid: uid})

如果有人遇到过此类问题,并且找到解决方案,请提供帮助。

在我的App.js中,我声明了所有这样的场景。 如果我有任何错误,请让我知道。

class App extends Component {
    render() {
        return (
            <Router>
                <Scene key="ROOT" style={styles.container}>
                    <Scene
                        key="tabbar"
                        tabs={true}
                        tabBarStyle={{ backgroundColor: '#FFFFFF' }}
                        navTransparent
                    >
                        <Scene key="LOGIN" component={Login} title="Login Screen" />
                        <Scene
                            key="REGISTER"
                            component={Register}
                            title="Register Screen"
                            initial={true}
                        />
                        <Scene key="DASHBOARD" component={Dashboard} title="Dashboard Screen" />
                    </Scene>
                </Scene>
            </Router>
        );
    }
}

在Register.js内部,我有一个函数,单击该函数即可。

// register.js
onRegisterClick = () => {
    const { email, fname, lname } = this.state;

    app.auth()
        .createUserWithEmailAndPassword(email, 'qwertyuiop')
        .then(data => {
            const userId = data.user._user.uid;
            return userId;
        })
        .then(userId => {
            app.database()
                .ref('Users')
                .child(userId)
                .set({
                    email,
                    fname,
                    lname
                });
            return userId;
        })
        .then(userId => {
            Actions.jump('DASHBOARD', { uid: userId });

        })
        .catch(err => {
            console.log('Cannot create user');
        });
};
react-native react-native-router-flux
© www.soinside.com 2019 - 2024. All rights reserved.