renderWhen for conditional follow-up questions when an item fails
inspection. Store schemas in a database so inspection templates can be updated by operations staff
without a deployment. Integrate file upload for photo evidence.
Last reviewed: April 2026.

The problem
Field inspections, audits, and structured data-collection workflows share a set of requirements that generic form libraries handle poorly:- Variable line items. An equipment inspection might cover 3 machines one visit and 15 the next. The form needs to handle a dynamic number of identical entry groups.
- Conditional follow-ups. If a piece of equipment fails a check, a failure description field becomes required. If it passes, that field is irrelevant and shouldn’t appear.
- Template updates without dev involvement. The safety team adds a new check after a regulatory change. Operations can’t wait for a sprint.
- Evidence capture. Photo attachments, signatures, and GPS metadata belong next to the inspection item they document — not at the end of a flat form.
Repeater: n-item inspection entries
TheRepeater component manages a dynamic array of identical field groups. Users add and remove
items at runtime; each item maintains its own field values.
form.data refers to that item’s own fields. form.data.checkResult reads
the current item’s result, not the parent form’s data. So renderWhen: "form.data.checkResult === 'fail'" correctly hides/shows follow-up fields per item — each item’s conditional logic is
independent.
Accessing parent context inside Repeater items
Sometimes an item’s logic depends on data outside the Repeater — for example, the inspection type selected at the top of the form might determine which severity scale to use. Access parent-level data viaform.parentData:
form.parentData is the outer form’s data object. form.rootData is always the root level regardless of Repeater nesting depth.
Section-level conditional logic
Entire sections of an inspection form can appear or disappear based on the inspection type. Use a Container withrenderWhen:
Signature capture for sign-off
Inspections typically require a sign-off from the inspector and sometimes a secondary approver. The Signature component captures a drawn signature:form.data.inspectorSignature. Store it in
your database or attach it to the generated PDF report.
Computed summary field
Show the inspector a running count of failures before submission using a computed Label:Complete form structure
A realistic equipment inspection form puts it all together:Submitting the data
initialData pre-sets today’s date so the inspector doesn’t have to pick it.
report.equipmentChecks is a flat array of objects — one object per Repeater item — ready to insert
into a database or attach to a PDF generator.
Template management by operations staff
With FormEngine Designer embedded in an admin panel, your safety or operations team can:- Add a new check item to an inspection type
- Change pass/fail options to pass/fail/partial
- Add a new section for a new equipment category
- Require a photo only when severity is “Critical”
Related
- Repeater component reference
- Signature component reference
- Uploader component reference
- Conditional logic reference
- Computed properties reference
- Conditional fields tutorial
- Dynamic form fields tutorial
- FormEngine Designer
FormEngine on GitHub · npm · Pricing