[{"data":1,"prerenderedAt":113},["ShallowReactive",2],{"content-\u002Fe\u002Faf06":3},{"id":4,"title":5,"body":6,"condition":104,"description":105,"extension":106,"meta":107,"navigation":108,"path":109,"seo":110,"stem":111,"__hash__":112},"errors\u002Fe\u002Faf06.md","AF06",{"type":7,"value":8,"toc":98},"minimark",[9,13,32,35,45,50,56,60,87],[10,11,5],"h1",{"id":12},"af06",[14,15,16],"p",{},[17,18,19,23,24,27,28,31],"strong",{},[20,21,22],"code",{},"useForm"," \u002F ",[20,25,26],{},"injectForm"," ran outside a Vue ",[20,29,30],{},"setup()"," context.",[14,33,34],{},"In development this reads:",[36,37,38],"blockquote",{},[14,39,40,44],{},[41,42,43],"span",{},"attaform"," useForm \u002F injectForm called outside Vue setup(). Move into setup or mount a child component to trigger from an event.",[46,47,49],"h2",{"id":48},"what-happened","What happened",[14,51,52,53,55],{},"Both composables register lifecycle hooks and provide\u002Finject links, which Vue only wires while a component's ",[20,54,30],{}," is running. A call from an event handler, a watcher body, or an awaited continuation has no current instance to attach to.",[46,57,59],{"id":58},"how-to-fix-it","How to fix it",[61,62,63,77],"ul",{},[64,65,66,67,69,70,73,74,76],"li",{},"Call the composable during ",[20,68,30],{}," and keep the returned ",[20,71,72],{},"form"," handle around; event handlers then use the handle instead of calling ",[20,75,22],{}," again.",[64,78,79,80,83,84,86],{},"For UI that must not exist until an interaction happens, mount a child component on that interaction (",[20,81,82],{},"v-if",") and let its own ",[20,85,30],{}," run the composable.",[14,88,89,94,95,97],{},[90,91,93],"a",{"href":92},"\u002Fdocs\u002Freading-the-form\u002Fthe-form","The form"," walks the handle ",[20,96,22],{}," returns and the state it carries.",{"title":99,"searchDepth":100,"depth":100,"links":101},"",2,[102,103],{"id":48,"depth":100,"text":49},{"id":58,"depth":100,"text":59},"`useForm` \u002F `injectForm` ran outside Vue `setup()`","useForm or injectForm was called outside a Vue setup() function, typically from an event handler or async callback that runs after mount.","md",{},true,"\u002Fe\u002Faf06",{"title":5,"description":105},"e\u002Faf06","AWwSd-a6voZwmd01F9K_MfQtyybQF09fsByHeZ0dP7A",1787641562953]