嗨,我正在尝试使用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');
});
};