issue: setValue does not update value inside Controller render #10293
-
Version Number7.43.9 Codesandbox/Expo snackhttps://codesandbox.io/s/setvalue-controller-render-value-jsls4w Steps to reproduce
Expected behaviourHello, I don't know if it's a bug or if I am forgetting something sorry. I have two controlled components, a The value is updated to What browsers are you seeing the problem on?Chrome Relevant log outputThe console log output is:
{test: Array(1)}
test: Array(1)
0: Object
id: null
name: null
dateBecameSomething: Mon Apr 10 2023 00:00:00 GMT+0200 (Central European Summer Time)
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
The registered field name should be same between the one from Working demo: https://codesandbox.io/s/setvalue-controller-render-value-forked-143l49?file=/src/App.js |
Beta Was this translation helpful? Give feedback.
-
Probably need to invoke update event on each nested fields. formMethods.setValue(`triggerCreateRequest.trigger.specs.${index}`, {
trigger_subject: "1",
generic_trigger_spec_type,
generic_trigger_spec_value: {
resourcetype: "TriggerUrlsSpec",
urls: [],
},
}) My nested Controller with name form.getValues() have actual value, but Controller does not. I have set value twice. formMethods.setValue(`triggerCreateRequest.trigger.specs.${index}`, {
trigger_subject: "1",
generic_trigger_spec_type,
generic_trigger_spec_value: {
resourcetype: "TriggerUrlsSpec",
urls: [],
},
})
formMethods.setValue(
`triggerCreateRequest.trigger.specs.${index}.trigger_subject`,
"11"
) |
Beta Was this translation helpful? Give feedback.
@raulalonso-aircury
The registered field name should be same between the one from
Controller
andsetValue
. You are using different nametest.${index}.name
andtest[${index}].name
.Working demo: https://codesandbox.io/s/setvalue-controller-render-value-forked-143l49?file=/src/App.js