Hacer accesible una variable fuera de una función
Tengo este código de React Native y quiero usar la variable gameOfTheUser (que se crea en la función de flecha: userRef. ounce (' value'). then (snapshot =>
) fuera de este, para poder continuar con las diferentes condiciones. ¿Cómo hacerlo? Imagino (¡y espero!) que existe una solución sencilla a este problema.
Mi RouterScreen.js:
import React from 'react';
import { Text } from 'react-native';
import fb from '../engine/firebaseConfig';
export default class RouterScreen extends React.Component {
componentDidMount() {
const { navigate } = this.props.navigation;
fb.auth().onAuthStateChanged(user => {
if (user) {
var userRef = fb.database().ref('users/' + user.uid);
userRef.once('value').then(snapshot => {
var gameOfTheUser = snapshot.child('game').val();
console.log('0 : ' + gameOfTheUser);
});
if (gameOfTheUser !== null) {
console.log('InGame');
var gameID = gameOfTheUser;
console.log('1 : ' + gameOfTheUser);
console.log('1 : ' + gameID);
navigate('Game', { user, gameID });
} else {
console.log('NotInGame');
navigate('Choose', { user });
}
} else {
navigate('Auth');
}
});
}
render() {
return <Text>Hello</Text>;
}
}
Mi aplicación.js:
import React from 'react';
import { StackNavigator } from 'react-navigation';
// Pages
import RouterScreen from './screens/RouterScreen';
import AuthScreen from './screens/AuthScreen';
import ChooseScreen from './screens/ChooseScreen';
import GameScreen from './screens/GameScreen';
export const RootStack = StackNavigator(
{
Router: {
screen: RouterScreen,
},
Auth: {
screen: AuthScreen,
},
Choose: {
screen: ChooseScreen,
},
Game: {
screen: GameScreen,
},
},
{
initialRouteName: 'Router',
headerMode: 'none',
}
);
export default class App extends React.Component {
render() {
return <RootStack />;
}
}
Mostrar la mejor respuesta