diff --git a/src/admin/components/forms/Form/fieldReducer.ts b/src/admin/components/forms/Form/fieldReducer.ts index cd3cbcb124..a5bd4e905f 100644 --- a/src/admin/components/forms/Form/fieldReducer.ts +++ b/src/admin/components/forms/Form/fieldReducer.ts @@ -119,6 +119,7 @@ function fieldReducer(state: Fields, action): Fields { initialValue: action.initialValue, stringify: action.stringify, validate: action.validate, + condition: action.condition, }; return { diff --git a/src/admin/components/forms/withCondition/index.tsx b/src/admin/components/forms/withCondition/index.tsx index fb33b750de..9236b667bd 100644 --- a/src/admin/components/forms/withCondition/index.tsx +++ b/src/admin/components/forms/withCondition/index.tsx @@ -33,18 +33,19 @@ const withCondition =
>(Field: React.Component
const { getData, getSiblingData, getField, dispatchFields } = useWatchForm();
const data = getData();
- const field = getField(path);
const siblingData = getSiblingData(path);
const passesCondition = condition ? condition(data, siblingData) : true;
useEffect(() => {
if (!passesCondition) {
+ const field = getField(path);
dispatchFields({
...field,
+ path,
valid: true,
});
}
- }, [passesCondition, field, dispatchFields]);
+ }, [passesCondition, getField, dispatchFields, path]);
if (passesCondition) {
return