You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
I need to have custom validation depense with 2 fields
Previosly I use rjsf 3.x and all works good. I upgrade project to 5.x and find bug (as I think).
I have a form with a dependency "Test" <= "Test2". I applied a custom validation where I specified this dependency. const validate = (formData: any, errors: FormValidation) => { if (formData["Test"] > formData["Test2"]) errors["Test"]?.addError("Test should be LE than Test2"); return errors; };
And I noticed a problem:
Let's say initially I have Test = 10 and Test2 = 15
If I set Test2 = 5, then an error will appear near Test. This is the correct behavior
If I return Test2 = 15, then the error will not disappear. And this looks like a bug, because the values Test (10) and Test2 (15) satisfy the condition "Test" <= "Test2"
If no validation errors are found, then no errors should be shown.
This error should not be there,
because according to the code the condition = false const validate = (formData: any, errors: FormValidation) => { if (formData["Test"] > formData["Test2"]) errors["Test"]?.addError("Test should be LE than Test2"); return errors; };
Test < Test2 (10 < 15)
@shishmak First of all, you are using MobX incorrectly. In your sandbox I am seeing the following warnings:
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ObservableObject@2.jsonScheme
at eval (https://s9pdhk.csb.app/node_modules/mobx-react-lite/es/observer.js:43:47)
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ObservableObject@2.uiScheme
at eval (https://s9pdhk.csb.app/node_modules/mobx-react-lite/es/observer.js:43:47)
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ObservableObject@2.formData
at eval (https://s9pdhk.csb.app/node_modules/mobx-react-lite/es/observer.js:43:47)
When doing a console.log of your formData as I type, I don't see it updating so perhaps this is leaving the form in a confused state.
Perhaps once you fix things with MobX the issue may be fixed?
Prerequisites
What theme are you using?
utils
Version
5.x
Current Behavior
Hello,
I need to have custom validation depense with 2 fields
Previosly I use rjsf 3.x and all works good. I upgrade project to 5.x and find bug (as I think).
I have a form with a dependency "Test" <= "Test2". I applied a custom validation where I specified this dependency.
const validate = (formData: any, errors: FormValidation) => { if (formData["Test"] > formData["Test2"]) errors["Test"]?.addError("Test should be LE than Test2"); return errors; };
And I noticed a problem:
Let's say initially I have Test = 10 and Test2 = 15
If I set Test2 = 5, then an error will appear near Test. This is the correct behavior
If I return Test2 = 15, then the error will not disappear. And this looks like a bug, because the values Test (10) and Test2 (15) satisfy the condition "Test" <= "Test2"
example of my code:
https://codesandbox.io/p/sandbox/yyrxsp
Expected Behavior
If no validation errors are found, then no errors should be shown.
This error should not be there,
because according to the code the condition = false
const validate = (formData: any, errors: FormValidation) => { if (formData["Test"] > formData["Test2"]) errors["Test"]?.addError("Test should be LE than Test2"); return errors; };
Test < Test2 (10 < 15)
Steps To Reproduce
https://codesandbox.io/p/sandbox/yyrxsp
Environment
Anything else?
No response
The text was updated successfully, but these errors were encountered: