|
|
@@ -4523,6 +4523,45 @@ bekende valkuil: bevat de keten een Custom Action met een *Action Output
|
|
|
Variable Name*, dan moet je die na het plakken hernoemen (dubbele declaratie in
|
|
|
het model).
|
|
|
|
|
|
+**⚠️ Maar een geplakte keten verliest élke binding die naar een LOOP-ITEM of een
|
|
|
+PAGE PARAMETER wijst — ook binnen dezelfde pagina.** Bevestigd 2026-09-21 (taak
|
|
|
+127-G, twee keer). Wat overleeft: de actiestructuur, de conditional, de
|
|
|
+API-callkeuze en bindingen aan **App State**. Wat sneuvelt: `getJsonField(<loop-
|
|
|
+item>, …)`-waarden (het JSON-pad blijft staan, de *bron* niet — je ziet een rood
|
|
|
+veld met een uitroepteken) en alles wat aan `widget!.<parameter>` hing. Bij het
|
|
|
+plakken naar een andere pagina waar die page parameter niet bestaat, levert dat
|
|
|
+bovendien een *Conditional Action — improperly set* op.
|
|
|
+- ⚠️ **En dat BLOKKEERT de export project-breed** (`Status: 400`), dus laat een
|
|
|
+ half geplakte keten nooit staan. Kom je er niet meteen uit: ⋮ naast de trigger
|
|
|
+ → **Delete Action Chain**, export testen (moet meteen weer groen zijn), en dan
|
|
|
+ pas rustig opnieuw opbouwen.
|
|
|
+- **Kosten-baten:** bij ~4 acties is plakken-plus-repareren ongeveer even veel
|
|
|
+ werk als opnieuw opbouwen. Plakken wint alleen als de keten vooral App
|
|
|
+ State-bindingen heeft (zoals de uitlogketen hierboven).
|
|
|
+- **Na het plakken altijd langs:** (1) de *Action Output Variable Name* — die is
|
|
|
+ identiek aan het origineel en geeft "Action in Button has an output variable
|
|
|
+ with the same name as that of another widget"; hernoem hem **eerst**, want de
|
|
|
+ vervolgacties verwijzen ernaar; (2) de conditie, die na het hernoemen nog naar
|
|
|
+ de oude naam wijst; (3) elke *Update App State* die de oude output-naam leest;
|
|
|
+ (4) de Navigate-parameters.
|
|
|
+
|
|
|
+**⚠️ Een `ListTile` laat zich NIET in een `Row` wrappen — FlutterFlow weigert het
|
|
|
+met de generieke "Invalid Action"-toast.** Bevestigd 2026-09-21: een `ListTile`
|
|
|
+heeft geen intrinsieke breedte, dus in een Row zou hij onbegrensd worden en de
|
|
|
+builder draait de actie terug (de toast blijft staan en de selectie springt naar
|
|
|
+de pagina-root, waardoor het lijkt of je klik niet landde). **Wil je een knop
|
|
|
+naast/achter een lijstregel: wrap in een `Column` en zet de knop eronder** — dat
|
|
|
+gaat wel in één keer, en het sluit aan bij hoe de kaarten op `MijnAanmeldingen`
|
|
|
+het al doen. Het recept daarna: "+" op de nieuwe `Column`-rij in de tree →
|
|
|
+Insert-dropdown → `Button` typen → de kaart onder *Top Results*.
|
|
|
+- **De InkWell om zo'n ListTile is géén tree-node** (FlutterFlow genereert die
|
|
|
+ omdat de tile een On Tap heeft), dus zoeken op `InkWell` geeft "No Results" —
|
|
|
+ de `ListTile` zelf is de node die je wrapt.
|
|
|
+- ⚠️ **Het contextmenu van een tree-rij opent op wisselende hoogte**, dus doe
|
|
|
+ rechtsklik + `zoom` in de ene aanroep en klik *Wrap Widget* pas in de
|
|
|
+ volgende. Blind op de onthouden y klikken landde hier drie keer op *Insert
|
|
|
+ Widget*, wat een heel ander paneel opent. `Ctrl+B` als sneltoets werkte niet.
|
|
|
+
|
|
|
**Een verse `ListTile` komt met `title: 'Title'` én `subtitle: 'Subtitle'` — die
|
|
|
subtitle moet je expliciet leegmaken, anders staat er letterlijk "Subtitle" in de
|
|
|
app.** De Subtitle-sectie valt bij een 935px-venster onder de vensterrand; klap
|