Ich arbeite an einer React Native-Anwendung. Wenn sich der Benutzer in der App anmeldet, wird ein API-Aufruf an den Server gesendet, um die Daten mithilfe von redux-saga abzurufen. Im Redox-Speicher pflege ich eine boolesche Variable "fetchingData". Es wird auf 'wahr' gesetzt, sobald der API-Aufruf gestartet wurde, und auf 'falsch' gesetzt, sobald die Daten abgerufen wurden oder ein Fehler auftritt. Jetzt möchte ich einen Spinner anzeigen, wenn die Daten abgerufen werden, und eine FlatList, wenn die Daten abgerufen werden. Ich weiß, dass ich dies tun kann, indem ich die return-Anweisung in eine if-else-Bedingung verpacke. Ich nehme an, es muss einen besseren Weg geben, dies zu tun. Wenn mir jemand dabei helfen kann, erzähle mir bitte einen guten Weg, dieses bedingte Rendering in React Native zu erreichen. Vielen Dank im Voraus.Die beste Methode, bedingtes Rendering in React Native zu verwenden
1
A
Antwort
1
Ich glaube nicht. Wenn die Methode render()
aufgerufen wird, muss die entsprechende Komponente basierend auf dem Status zurückgegeben werden.
render() {
const isLoading = this.state.isLoading
return isLoading ?
<Spinner /> //return a spinner
:
<FlatList /> return a list with data
}
1
Wenn dies ein Muster, das Sie überall verwenden gibt es mehrere Möglichkeiten, um abstrakte das Muster aus:
eine allgemeine
<Loading />
Komponente erstellen:class Loading extends React.Component { static defaultProps = { waitingElement: <Spinner />, renderedElement: null }; render() { return this.props.loading ? this.props.waitingElement : this.props.renderedElement; } } // In some other component's `render`: <Loading renderedElement={<component with=props />}, loading={this.state.isWaiting} />
ein höher- Verwenden Um die Komponente zu verpacken:
function withLoading(Component, spinner = <Spinner />) { return class extends Component { render() { if (this.props.loading) return spinner; return super.render(); } }; } // Some other file completely export default withLoading(class MyComponent { render() { return "Happy path only!"; } });
Verwandte Themen
- 1. Bedingtes Rendering mit React Router
- 2. React, Mobx, Firebase bedingtes Rendering
- 3. Bedingtes Rendering in reagieren
- 4. Wie bedingtes Rendering in reactjs verwenden?
- 5. Die beste Methode zum Implementieren von Stripe mit React-native?
- 6. Fehlerhaftes Pfad-Rendering in react-native-svg
- 7. Bedingtes Rendern in Meteor + React
- 8. Registerkarte Komponenten nicht rendering -React native
- 9. Bedingtes Rendern in React js
- 10. Bedingtes Rendering Reaktionsproblem (Schleife)
- 11. CycleDOM bedingtes Rendering-Problem
- 12. React Native: performantes Rendering eines imagebasierten Newsfeeds
- 13. Verwenden Sie native Basiskomponente in React-native
- 14. Der beste Weg, Rendering-Komponenten in Render-Methode zu behandeln
- 15. VueJS 2 bedingtes Rendering in Wertbindung
- 16. Bedingtes Rendering und ReactCSSTransitionGroup Animation
- 17. Ruby Bedingtes Argument zu Methode
- 18. React Native PushNotification onNotification-Methode
- 19. React Native + Redux: Was ist die beste und bevorzugte Navigation?
- 20. Die beste Methode, statische Bilder basierend auf der Eigenschaft in der react Komponente zu verwenden
- 21. React-Native: Dismiss/Exit React-Native Ansicht zurück zu Native
- 22. Rendering Versprechen in React
- 23. Die Drawer-Methode openDrawer() in der Komponente React Native Android
- 24. Verhindern Rendering beim Empfang von GPS-Daten in React Native
- 25. Die beste Methode, Count() in LINQ zu verwenden?
- 26. Die beste Methode, ServiceManager in der Modellklasse zu verwenden?
- 27. Die beste Methode, Variablen in Modulen zu verwenden? (Python3)
- 28. Hochstellentext in React Native
- 29. Call setNetworkActivityIndicatorVisible Methode in React Native
- 30. Kann keine Methode von meinem React Native Android Modul verwenden