Ich stehe in React vor einer Herausforderung, bei der ich eine Reihe von Bildern nacheinander hochladen muss. Dafür habe ich eine Art Warteschlange erstellt, in der das Bild, wenn der Benutzer es auswählt, zur Warteschlange hinzugefügt wird und die Warteschlange es verarbeitet, indem sie das Bild auf s3 hochlädt und die hochgeladene URL und den aktualisierten Status zurückgibt. Hier ist der Code dafür:
Jetzt möchte ich den Status aktualisieren, nachdem diese Warteschlange mit der Verarbeitung des Bildes fertig ist, für das ich den StatusCallback habe, und in diesem Status-Callback rufe ich eine useReducer-Aktion auf so
Das Problem besteht darin, dass die Bilder korrekt verarbeitet werden, wenn ich sie langsam hinzufüge. Der Status wird auch korrekt aktualisiert, aber wenn ich die Bilder schnell nacheinander hinzufüge, verarbeitet die Warteschlange sie, lädt sie hoch und gibt die korrekten vollständigen Status zurück. Wenn der Status jedoch mehrmals aktualisiert wird, wird der Status manchmal nicht richtig eingerichtet, was dazu führt, dass Der Status von ein oder zwei Bildern ist noch auf „Hochladen“ oder „Ausstehend“ eingestellt, aber in Wirklichkeit wurden sie erfolgreich hochgeladen.
Hier ist meine Reduzierung:
Ich stehe in React vor einer Herausforderung, bei der ich eine Reihe von Bildern nacheinander hochladen muss. Dafür habe ich eine Art Warteschlange erstellt, in der das Bild, wenn der Benutzer es auswählt, zur Warteschlange hinzugefügt wird und die Warteschlange es verarbeitet, indem sie das Bild auf s3 hochlädt und die hochgeladene URL und den aktualisierten Status zurückgibt. Hier ist der Code dafür: [code]import { uploadToS3 } from '~/utils/s3Upload'; import { PPFInspectionImage } from '~/context/PPFInspectionContext';
// Add back to queue if retries remaining if ((image.retryCount || 0) < 3) { this.uploadQueue.push({ image: { ...image, retryCount: (image.retryCount || 0) + 1 }, partId, onStatusChange, }); } } }
// Method to retry failed uploads retryUpload(image: PPFInspectionImage, partId: number, onStatusChange: StatusCallback) { this.addToQueue({ ...image, retryCount: 0 }, partId, onStatusChange); } } [/code] Jetzt möchte ich den Status aktualisieren, nachdem diese Warteschlange mit der Verarbeitung des Bildes fertig ist, für das ich den StatusCallback habe, und in diesem Status-Callback rufe ich eine useReducer-Aktion auf so [code]// Start background upload UploadManager.getInstance(token).addToQueue(newImage, partId, (status, serverUrl, key) => { dispatch({ type: 'UPDATE_IMAGE_STATUS', payload: { partId, id: newImage.id, status, serverUrl, key }, }); }); [/code] Das Problem besteht darin, dass die Bilder korrekt verarbeitet werden, wenn ich sie langsam hinzufüge. Der Status wird auch korrekt aktualisiert, aber wenn ich die Bilder schnell nacheinander hinzufüge, verarbeitet die Warteschlange sie, lädt sie hoch und gibt die korrekten vollständigen Status zurück. Wenn der Status jedoch mehrmals aktualisiert wird, wird der Status manchmal nicht richtig eingerichtet, was dazu führt, dass Der Status von ein oder zwei Bildern ist noch auf „Hochladen“ oder „Ausstehend“ eingestellt, aber in Wirklichkeit wurden sie erfolgreich hochgeladen. Hier ist meine Reduzierung: [code]case 'UPDATE_IMAGE_STATUS': { const part = state.faults[action.payload.partId]; if (!part) return state;
Ist das ein Fehler in der TabView-Implementierung? Oder was könnte ich falsch machen?
Zusammenfassung:
Die Bindung scheint beim Hinzufügen und Entfernen nicht mehr synchron zu sein Registerkarten...
Ich versuche, den React Usecontext Hook zu implementieren, um den Status einer Benutzerlizenz zu teilen. Ich habe dieses Muster online gefunden, kann es aber nicht zum Laufen bringen. Wenn die Lizenz...
Ich arbeite an einer Jetpack -Kompose -App, in der ich Buchdaten von einem Server mithilfe eines BooksViewModel von einem Server abholte. Die Benutzeroberfläche sollte basierend auf dem Status...
Der fragliche mysteriöse Fehler:
ERROR in ./src/App.tsx 8:0-49
Module not found: Error: Can't resolve './Components/ItemShop' in 'C:\Users\Evan Newman\Desktop\Github...
Der fragliche mysteriöse Fehler:
ERROR in ./src/App.tsx 8:0-49
Module not found: Error: Can't resolve './Components/ItemShop' in 'C:\Users\Evan Newman\Desktop\Github...