-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Array support #97
Comments
we have support for arrays, would be good to add a docs page for it though. If you create a schema with const StringArraySchema = z.string().array();
function StringArrayField() {
const {field: {onChange, value}} = useTsController<string[]>();
}
const mapping = [
[StringArraySchema, StringArrayField]
] as const At least add examples for:
Any other ideas of examples we'd like to see with arrays? |
Well, the case I was trying to implement is an array of objects (or, in other words, a table). So, no, not a string array. The schema looks roughly like this: z.object({
data: z.object({
id: z.string(),
name: z.string(),
abbr: z.string(),
colour: z.string().nullable()
}).array()
}) (the top-level |
you can do that as well: const RowSchema = z.object({
id: z.string(),
name: z.string(),
abbr: z.string(),
colour: z.string().nullable()
});
const TableSchema = ObjectSchema.array();
function MyTable() {
const {field: {value, onChange}} = useTsController<z.infer<typeof TableSchema>>();
}
const mapping = [
[TableSchema, MyTable],
] as const; TBH I haven't used I guess the main motivation would be to make it easier to manipulate the dynamic inputs with things like "remove", "swap", etc? That could be done manually in the library currently, I think, but might be worth thinking about adding support for react hook forms APIs to make it easier |
I see. Well, this approach makes me treat the row as a single value, which is not very ergonomic. I guess it's a different topic, but what I want, is for array and object type schemas to be associated with layout, and only ever use
|
@Faithfinder Ah I had a typo in my code, should've been |
Couldn't find anything about dealing with arrays in the docs. I guess there needs to be native
useFieldArray
support?The text was updated successfully, but these errors were encountered: