Je viens de ReactJS et React Native. Je veux essayer Flutter. Jusqu'à présent, je veux avoir un écran de connexion. Par conséquent, je veux vérifier si un utilisateur est déjà connecté. Si c'est le cas, passez à l'écran d'accueil. Sinon, affichez l'écran de connexion.
Dans React avec TypeScript et Firebase, je le ferais de cette façon:
interface RootScreenState { isLoading: boolean; user: firebase.User | null; } class RootScreen extends React.Component<{}, RootScreenState> { constructor(props) { super(props); this.state = { isLoading: true, user: null } } componentDidMount() { // make an async call to some firebase libraries to look for stored user credentials // if some credentials are found try to login // of no credentials are found or login fails return null // otherwise the user is returned tryToLogin().then((currentUser: firebase.User | null) => { this.setState({ isLoading: false, user: currentUser }).catch(err => { /* do some error handling */}); } render() { const { isLoading, user } = this.state; if(isLoading) return ( /* loading screen */ ); else if(user === null) return ( /* login screen */ ); else return ( /* home screen */ ); } }
Comment faire avec Flutter? Je n'ai rien trouvé sur l'équivalent de compnentDidMount ()
, dois-je le faire dans le constructeur? Dans React, cela échouerait.
3 Réponses :
utilisez initState dans le widget avec état. InitState est appelé lorsque le widget avec état est peint pour la première fois. Par ex
class _MyAppState extends State<MyApp> { Future<Album> futureAlbum; @override void initState() { super.initState(); futureAlbum = fetchAlbum(); }
Flutter Docs doit le mentionner dans le Section React Native Developers . Ou est-ce que je l'ai manqué? Merci quand même
Vous pouvez le faire dans initState
de Flutter.
Il est appelé en premier lorsque votre arborescence de widgets est rendue.
Vérifiez le code ci-dessous:
@override void initState() { super.initState(); }
Pour plus de détails sur diverses choses dans React Native que vous souhaitiez connaître dans Flutter. Voir le lien ci-dessous: Il s'agit de la documentation officielle des personnes qui arrivent à Flutter à partir d'un arrière-plan React Native.
J'espère que cela vous aidera.
déjà vérifié mais a manqué des explications sur les équivalents des méthodes de cycle de vie de React. A créé un problème dans leur référentiel GItHub
Pour demander des données au serveur, vous pouvez utiliser FutureBuilder directement.
Parfois, la construction d'un widget se déclenchera deux fois si vous mettez les états dans l'état initial de manière incorrecte.
Je préfère mettre FutureBuilder dans la portée de construction de widgets et plus propre et plus lisible pour moi.