Insert field on load for autocomplete component

I cant seem to find issue on the following code block, I can provide more of the edit.tsx if needed: const { autocompleteProps, queryResult: coach_data } = useAutocomplete<ICoaches>({ resource: "activeCoaches", sorters: [ { field: "coach_name", order: "asc", }, ], defaultValue: activeStudentsData?.coach_full_name, }); <Controller control={control} name="coach_fullname" rules={{ required: "This field is required" }} // eslint-disable-next-line defaultValue={null as any} render={({ field }) => ( <Autocomplete {...autocompleteProps} {...field} onChange={(, value) => { field.onChange(value); }} getOptionLabel={(item) => { return ( autocompleteProps?.options?.find( (p) => p?.coach_name?.toString() === item?.coach_name?.toString() )?.coach_name ?? "" ); }} isOptionEqualToValue={(option, value) => value === undefined || option?.coach_name?.toString() === (value?.coach_name ?? value)?.toString() } renderInput={(params) => ( <TextField {...params} label="Koç İsmi" margin="normal" variant="outlined" error={!!errors.coach_full_name} helperText={errors.coach_full_name?.message} required /> )} /> )} />
4 Replies
kapa.ai
kapa.ai5mo ago
Hi @Taylan. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Based on the provided code block, it seems like you are trying to use the useAutocomplete hook from Refine to fetch a list of active coaches and use it in an Autocomplete field within a form. The useAutocomplete hook is used to fetch a list of resources (in this case, active coaches) and provide props to be used with an Autocomplete component. The defaultValue prop is used to set a default value for the Autocomplete field. In your case, it's set to activeStudentsData?.coach_full_name. The Controller component from react-hook-form is used to connect the Autocomplete field with the form. The defaultValue prop in the Controller is set to null as any, which means the Autocomplete field will not have a default value. If you want to set a default value for the Autocomplete field, you should set the defaultValue prop in the Controller to the desired default value. The getOptionLabel function is used to determine what to display for the selected option. In your case, it's set to display the coach_name of the selected option. The isOptionEqualToValue function is used to determine if a given option is equal to the selected value. In your case, it's set to compare the coach_name of the option and the selected value. The renderInput function is used to render the input element within the Autocomplete component. In your case, it's set to render a TextField with the label "Koç İsmi". If you are facing issues with this code, it would be helpful to provide more information about the exact issue you are facing. For example, are you getting any error messages? Is the Autocomplete field not displaying the expected options? Is the default value not being set correctly? For more information on how to use the useAutocomplete hook with CRUD components and useForm, you can refer to the Refine documentation (https://refine.dev/docs/ui-integrations/material-ui/hooks/use-auto-complete#how-do-i-use-it-with-crud-components-and-useform). ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai5mo ago
<@326721269015904258> kapa.ai is still learning and improving, please let us know how it did by reacting below
foreign-sapphire
foreign-sapphire5mo ago
interface ICoaches { id: string; coach_name: string; } interface IStudents { id: string; student_phone: string; coach_full_name: string; student_month: string; student_field: string; student_class: string; payment_method: string; end_of_period: number; student_name: string; last_meeting: number; payment_amount: string; coach_id: string; } ...useForm<IStudents, HttpError >({ refineCoreProps: { action: "edit", resource: "activeStudents", }, }); .... const { autocompleteProps, queryResult: coach_data } = useAutocomplete<ICoaches>({ resource: "activeCoaches", defaultValue: activeStudentsData?.coach_full_name, }); -- this is my full code. It is from a edit page of activeStudent. autocomplete lists correct options but on page load it does not insert any value and input is empty @kapa.ai
kapa.ai
kapa.ai5mo ago
Let me check the knowledge base for you. One moment! :books: Sorry @Taylan, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?