簡體   English   中英

useFieldArray react-hook-form

[英]useFieldArray react-hook-form

我正在阻止某些事情,這完全沒有意義。 對於熟悉 react-hook-form 的你,我正在嘗試創建一個根據狀態對象呈現的動態字段數組。 問題是,它在第​​一個渲染上渲染,但不在第二個渲染上渲染。

例子:


    let subK = [{ name: '' }]
    if (kategories[kategori] !== undefined) {
        //subK = kategories[kategori].subKategori.map(x => ({ name: JSON.stringify(x) }))
        subK = kategories[kategori].subKategori.map(x => ({ name: (x) }))
    }
    console.log(subK) // it logs[{name: 'kat1'},{name: 'kat2'}]

    //defines the form
    const { register, control, handleSubmit } = useForm({
        defaultValues: {
            subKategori: subK
        }
    });

不呈現 subK

但如果我這樣做

    let subK = [{ name: '' }]
    if (kategories[kategori] !== undefined) {
        //subK = kategories[kategori].subKategori.map(x => ({ name: JSON.stringify(x) }))
        subK = kategories[kategori].subKategori.map(x => ({ name: (x) }))
    }
    console.log(subK)

    //defines the form
    const { register, control, handleSubmit } = useForm({
        defaultValues: {
            subKategori: [{name: 'kat1'},{name: 'kat2'}]
        }
    });

它也按預期呈現。

我究竟做錯了什么?

在第 8 行的subKategori結構中存在一個小問題。數組似乎是字符串化形式。 但是對於map ,您需要一個數組。 在第 8 行將其轉換如下:

....
 kat1: {
          subKategori: ["kat1", "kat2"]
        },
...

這是更新的沙箱鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM