RichTextEditor: useState nach bedingtem return (Lint-Fehler rules-of-hooks) #97
Labels
No labels
Kind
Bug
Kind
Enhancement
Kind
Maintenance
Priority
P1
Priority
P2
Priority
P3
Status
In Progress
Status
Need More Info
Status
Zur Abnahme
Änderungen Wettspielreglement
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sffs-tt-basel/sffs-tt-issues#97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Was falsch ist
content/src/components/RichTextEditor.tsxruft zuerstuseEditor(…), dannif (!editor) return null;(Zeile 48) und erst danachuseState(Zeile 61,imageError). ESLint meldet das als Fehler: React Hook "useState" is called conditionally (react-hooks/rules-of-hooks).npm run lintim content-Workspace ist darum rot.Warum es heute nicht knallt
React verlangt dieselbe Zahl Hooks in jedem Render. Wäre
editorbeim ersten Rendernullund danach gesetzt, bräche die Komponente mit „Rendered more hooks than during the previous render“ ab. TipTap 3 erzeugt den Editor im Browser aber sofort (immediatelyRenderist ohne Angabetrue,@tiptap/react3.29),editorist also nienull– solange das so bleibt. Ein Update von TipTap oder ein Server-Rendering der Komponente würde es auslösen.Was es werden soll
useStatevor dasreturn nullziehen (alle Hooks zuerst), danach istnpm run lintin content grün. Kein sichtbarer Unterschied.Gefunden beim Nachziehen der Redaktions-E2E (ADR 0026); der Fehler bestand schon vorher.
Mit #96 behoben, seit 18.10. in
main(544b0d7): Die Hooks inRichTextEditor.tsxstehen jetzt vor dem bedingtenreturn,npx eslintmeldet dort keinenrules-of-hooks-Fehler mehr. Nichts zu klicken — kann geschlossen werden, sobald Olli einverstanden ist.