export const HOC = (WrappedComponent) => {
const { register, control, handleSubmit, reset, watch } = useForm({
defaultValues: {
test: [{ firstName: "Bill", lastName: "Luo" }]
}
});
const { fields, append, prepend, remove } = useFieldArray({
control,
name: "test"
});
return (
<form>
<ul>
{fields.map((item, index) => {
return (
<WrappedComponent
item={item}
removeindex={remove}
index={index}
{...register(`test.${index}.firstName`)}
/>
);
})}
</ul>
<section>
<button
type="button"
onClick={() => {
append({ firstName: "appendBill" });
}}
>
Append
</button>
</section>
</form>
);
};
export default HOC
const InputList = props => {
return (
<li key={props.item.id}>
<input {...props} ></input>
<button onClick={() => props.removeindex(props.index)} type="button" >Delete</button>
</li>
);
};
export default HOC(InputList)
Above I created Higher order Component with React hooks and React FORM hook in order to render input List component. But I get the following error
Invalid hook call. Hooks can only be called inside of the body of a function component.