Ich versuche herauszufinden, wie eine Ladeanzeige in einer Relay Modern-Anwendung angezeigt wird, wenn Daten gepaged werden. Ich habe eine Komponente, die auf einem PaginationContainer basiert, und ich möchte eine Ladeanzeige anzeigen, wenn ich zusätzliche Daten page (loadMore() wird aufgerufen). Ich sehe keine Möglichkeit, dies zu tun, außer irgendwie eine benutzerdefinierte Netzwerkimplementierung bereitzustellen, die dies während jeder Netzwerkanforderung tut, die nicht genau das ist, was ich will. Gedanken?Relay Modern: Wie man eine Ladeanzeige auf loadMore in einem PaginationContainer zeigt
2
A
Antwort
0
Ich denke Relay mit einer API kommt, damit Sie wissen, wenn Anfrage anhängig ist, haben Sie Zugriff auf this.props.relay.isLoading()
haben können (siehe docs)
class MyComponent extends React.Component {
render() {
return {
<div>
{this.props.relay.isLoading() ? <Spinner /> : null>
// ....
</div>
}
}
}
export default createPaginationContainer(
MyComponent,
...
)
0
Es scheint mir, dass dies ein weit verbreiteter Anwendungsfall ist das sollte explizit in der Relay-API unterstützt werden, aber das Folgende ist das Beste, was ich mir vorstellen kann. Vorschläge für andere Lösungen werden empfohlen.
In meiner Komponente, die auf einem Paginierung Behälter basiert:
constructor(arg) {
super(arg);
this.state = {isLoadingMore: false}
}
componentWillReceiveProps(nextProps) {
if (this.props !== nextProps) {
this.setState({isLoadingMore:false});
}
}
// onClick handler for "More" button
handleMore() {
if (!this.props.relay.hasMore() || this.props.relay.isLoading()) {
return;
}
this.setState({isLoadingMore: true});
this.props.relay.loadMore(
...
)
}
render() {
...
const isLoadingMore = this.state.isLoadingMore;
return (isLoadingMore ? <LoadingIndicator /> : <ListOfStuffView />
}
Verwandte Themen
- 1. Wie verwendet man Relay Modern (babel-plugin-relay und relay-compiler) mit TypeScript?
- 2. Relay Modern - Wie fetchQuery ohne fragmentContainer
- 3. Ressourcen für Relay Modern-React Native Integration
- 4. Relay Modern, Load More funktioniert nicht, hasMore() keep return false
- 5. Wie Dateiuploads mit Relay Modern Mutationen zu tun?
- 6. Modern UI - Modern Menu zeigt keinen Link Inhalt
- 7. Wie zeigt man eine Ladeanzeige an und tauscht sie dann mit Inhalten in iOS aus?
- 8. Relay Modern RefetchContainer Requisiten werden nicht an Komponente übergeben
- 9. kann ich loadMore in Relay nicht sogar gibt es mehr Elemente?
- 10. `Updater` arbeitet nicht mit Relay Modern weil` ConnectionHandler.getConnection() `` `undefined` zurückgibt
- 11. create-react-native-app/expo mit Relay Modern
- 12. Wie man Dateien zu einem MODERN openshift hochlädt?
- 13. C# Wie man eine Textblase auf einem Benutzersteuerelement zeigt?
- 14. Wie strukturiert man einen Rubinstein modern?
- 15. React-Starter-Kit: Wie kann ich Graphql-Schema für Relay Modern exportieren?
- 16. Relay Pagination: Wie initialisiert man "nach" Wert?
- 17. Wie zeigt man eine veröffentlichte Version in einem Textfeld an?
- 18. Wie zeigt/versteckt man eine bestimmte Anzahl von Divs?
- 19. Relay App: Wie untersucht man das Schema auf dem Server?
- 20. Ladeanzeige rechts in einer AutoCompleteTextView
- 21. Wie man eine Struktur auf eine andere zeigt
- 22. Ladeanzeige mit Google Chrome
- 23. Relay Modern Compat-Modus: undefined ist kein Objekt (Bewertung 'etikettierterNode [CLASSIC_NODE]')
- 24. Relay-Abfrage, dass auf Daten aus einer Relay-Abfrage hängt
- 25. Ladeanzeige funktioniert nicht richtig
- 26. Swift tableView Ladeanzeige unten
- 27. Benutzerdefinierte Position auf Kendo Ladeanzeige anzeigen
- 28. Ladeanzeige nach dem Klicken auf die Schaltfläche
- 29. Seite Ladeanzeige yii2
- 30. Wie deaktivieren `Modern` Abschnitt in Extjs-6
hey ich hasse es, zu fragen, aber ich habe Probleme mit dem Relay Moderne createPaginationContainer. Wenn Sie einen Moment haben und einen Blick darauf werfen können: https://stackoverflow.com/questions/45126278/relay-modern-createpaginationcontainer-not-receiving-any-props – liminal18
@Vincent Taing, interessanterweise this.props.relay.isLoading() ist in der Render-Methode meines PaginationContainer nach dem Aufruf von loadMore() wahr. Aber meine Rendermethode wird nur einmal aufgerufen, wie ich vermutet habe. Daher kann ich hier nicht sagen, ob die Netzwerkanforderung gerade ausgeführt wird oder abgeschlossen wurde. – bjlevine