Comments (2)
not related to this library try this code without using your other libs
'use client';
import { useEffect } from 'react';
import Image from 'next/image';
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectLabel,
SelectTrigger,
SelectValue,
} from '@/components/ui/select';
import useSWR from 'swr';
import { useForm, Controller } from 'react-hook-form';
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from '@/components/ui/form';
import Skeleton from 'react-loading-skeleton';
import 'react-loading-skeleton/dist/skeleton.css';
const fetcher = (...args) => fetch(...args).then((res) => res.json());
export default function Home() {
const { data, isLoading } = useSWR(
'https://run.mocky.io/v3/ab7d7e0e-899b-41a7-bd17-00e92fa1b446',
fetcher
);
const form = useForm({
defaultValues: {
fruit: data?.fruit,
},
});
console.log('page render...')
useEffect(() => {
if (data) {
console.log('data', data?.fruit);
form.reset({ fruit: 'apple' });
}
}, [data]);
if (isLoading) {
return <Skeleton count={5} />;
}
return (
<main className="flex min-h-screen flex-col items-center justify-between p-24">
<Controller
control={form.control}
name="fruit"
render={({ field }) => {
console.log('field.value', field.value)
return null
}}
/>
</main>
);
}
from react-hook-form.
Hello, @devevignesh .
How about changing it like the code below?
const fetcher = (...args) => fetch(...args).then((res) => res.json());
const HomeForm = ({ fruit }: { fruit: string }) => {
const form = useForm({
defaultValues: {
fruit,
},
});
return (
<main className="flex min-h-screen flex-col items-center justify-between p-24">
<Form {...form}>
<form className="space-y-8">
<FormField
control={form.control}
name="fruit"
render={({ field }) => (
<FormItem>
<FormLabel>Username</FormLabel>
<FormControl>
<Select onValueChange={field.onChange} {...field}>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="Select a fruit" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Fruits</SelectLabel>
<SelectItem value="apple">Apple</SelectItem>
<SelectItem value="banana">Banana</SelectItem>
<SelectItem value="blueberry">Blueberry</SelectItem>
<SelectItem value="grapes">Grapes</SelectItem>
<SelectItem value="pineapple">Pineapple</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</FormControl>
<pre>{JSON.stringify(field, null, 2)}</pre>
</FormItem>
)}
/>
</form>
</Form>
</main>
);
};
export default function Home() {
const { data, error, isLoading } = useSWR(
'https://run.mocky.io/v3/ab7d7e0e-899b-41a7-bd17-00e92fa1b446',
fetcher
);
if (error) {
return <div>Error</div>;
}
if (isLoading) {
return <Skeleton count={5} />;
}
return <HomeForm fruit={data.fruit} />;
}
from react-hook-form.
Related Issues (20)
- issue: UseWatch not subscribing to array changes HOT 1
- issue: `isDirty` is always 'true' when the `reactStrictMode` property is enabled in the `next.config.js` config
- issue: setValue with shouldDirty on nested objected throws TypeError
- Validating array inputs based on another field from within the array
- Create reusable form section HOT 3
- issue: Form should not transition to 'isSubmitting' true unless validation has passed HOT 2
- issue: custom validate works onChange even though I set useForm({mode: 'onBlur'}).
- issue: FieldArray append with React Select not working correctly. HOT 1
- issue: Controlled Field Array Controller component does not render latest value with update(index, { ...item, lastName: "World", }); if using spread operator {...item, lastName: "World"} to update an object
- The new website has a security problem which stops me from seeing it HOT 1
- issue: Subscription to isValidating via useController causes quadratic amounts of re-renders on submit HOT 4
- issue: useFieldArray incorrectly treats value of 0 as empty value
- issue: Form-level `disabled` doesn't affect uncontrolled inputs that aren't rendered immediately HOT 1
- development of hookform/core for alternative frameworks HOT 2
- issue: Fields dirty state is not updated when passing values to useForm since 7.51.0 HOT 8
- Validate all Form Fields in Parallel on Submit when criteriaMode is set to 'all' HOT 2
- Submit the form outside the form (imperative submission)
- issue: Async defaultValues function overwrites values in React.StrictMode
- issue: Default values set by resetting are discarded when register has not been called yet.
- issue: useFieldArray doesn't retain provided values when appending
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-hook-form.