I am using react-hook-form for building react multi-step-form. Everything is fine, I am using radio button as my first field in my first step. I have done every thing right, but when I click first time in radio button and click next to go to the second stage, I get null value. If I again click next button, I get the correct value and I reach to the second stage of the form. I am trying hard for days to solve it but not getting the result.
This is my form component:
<FormProvider {...methods}>
<form onSubmit={methods.handleSubmit(handleStateClick)}>
<div >
{Stage[currentStage].Comp}
</div>
<div >
<button ref={postButtonRef} type="submit">
{currentStage === 2 ? 'Post' : 'Next'}
</button>
</div>
</form>
</FormProvider>
My first stage form comp:
{Type.map((item, index) => (
<label key={index} htmlFor={`Type${index}`}>
<input
{...register('singleType', { required: true })}
type="radio"
id={`Type${index}`}
value={item}
/>
<p
onClick={() => handleTypeClick(index)}
>
{item}
</p>
</label>
))}
const handleStateClick = (data) => {
console.log(data);
if (currentStage < listingModelStage.length - 1) {
setCurrentStage(currentStage + 1);
}
}
Basically, I am mapping an array
let array=["one","two","three"]
if I click three then I get the data on first click and I move to second stage but, if I click others I get null value on my first next button click, and when I again click the next button I get the data.