Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nested FormSection #23

Open
adelin-b opened this issue Jul 21, 2018 · 1 comment
Open

Nested FormSection #23

adelin-b opened this issue Jul 21, 2018 · 1 comment

Comments

@adelin-b
Copy link

Hello
Is there any way to use sections like https://redux-form.com/7.4.2/docs/api/formsection.md/
If not, how can we implement it ?

@bmv437
Copy link
Contributor

bmv437 commented Jul 23, 2018

*Note - This is brain dump for now. I'll try and organize this into a more cohesive explanation later.

This was explored a bit in #24, but in the process of writing up an example I uncovered an issue.
The issue has to do with data scope and questionId references.

Currently data in array items has a merged scope. The arrayItem type uses the <FormSection /> component to scope it's childFields.
data = { ...formData, ...arrayItemData }
This could also be read as
data = { ...globalScope, ...localScope }
or
data = { ...absoluteData, ...relativeData }
where localScope is data that has a prefix from a <FormSection />

The merged scope is passed into condEval() which can cause issues for validation and conditional properties. This is especially true if there is a name collision for a local questionId and a global questionId.

redux-form Field components don't get a merged scope, they only see the localScope.

We need a way to differentiate between questionIds in conditional objects that refer to local scope vs global scope.

The default scope should be local, but we should be able to override that to break out of a local scope and refer to something at the global scope level.

In addition, the mapFieldChildren() utility will always traverse childFields, so it's breaking validation for a section with a questionId to scope it's childFields.

@bmv437 bmv437 mentioned this issue Oct 15, 2018
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants