国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

React Hook Form的useFieldArray無(wú)法顯示數(shù)據(jù)
P粉176151589
P粉176151589 2023-09-01 23:30:48
0
1
842

大家好,我使用React Hook Form和useFieldArray Hook建立了一個(gè)Material UI表單。


      <網(wǎng)格容器間距={2}>
        <網(wǎng)格項(xiàng) xs={12} sm={12} md={12} lg={12}>
          <文字字段
            label="Evnet 名稱(chēng)"
            全螢?zāi)粚挾?            {...註冊(cè)(“事件名稱(chēng)”)}
            name="事件名稱(chēng)"
          >>
        </網(wǎng)格>

        <網(wǎng)格項(xiàng) xs={12} sm={12} md={6} lg={6}alignSelf=“center”>
          <文字字段
            label="Evnet 場(chǎng)地名稱(chēng)"
            全螢?zāi)粚挾?            {...註冊(cè)(“事件地點(diǎn)”)}
            name="活動(dòng)地點(diǎn)"
          >>
        </網(wǎng)格>
         <框sx={{寬度:“100%” }}>
          <對(duì)話框標(biāo)題
            sx={{ fontWeight: “粗體”, textTransform: “大寫(xiě)”; }}
          >
            門(mén)票類(lèi)別
          </對(duì)話框標(biāo)題>
        </框>
        <網(wǎng)格項(xiàng)xs={12} sm={12} md={5} lg={4}>
          <文字字段
            標(biāo)籤=“類(lèi)別”
            全螢?zāi)粚挾?            {...註冊(cè)(“ticketCatName”)}
            name="ticketCatName";
          >>
        </網(wǎng)格>

        <網(wǎng)格項(xiàng)xs={12} sm={12} md={3} lg={3}>
          <文字字段
            類(lèi)型=“數(shù)字”
            label="價(jià)格";
            全螢?zāi)粚挾?            {...註冊(cè)(“ticketCatPrice”)}
            name="ticketCatPrice";
          >>
        </網(wǎng)格>

        <網(wǎng)格項(xiàng)xs={12} sm={12} md={3} lg={3}>
          <文字字段
            類(lèi)型=“數(shù)字”
            標(biāo)籤=“總計(jì)”
            全螢?zāi)粚挾?            {...註冊(cè)(“ticketCatTotal”)}
            name=“ticketCatTotal”
          >>
        </網(wǎng)格>
這是我提交表單時(shí)得到的值。
</框></pre>
<p>我創(chuàng)建了一個(gè)動(dòng)態(tài)表單元件,使用地圖來(lái)顯示。</p>
<pre class="brush:php;toolbar:false;">{fields.map((item, index) => {
              return (
                <MoreFields
                  register={register}
                  key={item.id}
                  remove={remove}
                  index={index}
                  item={item}
                  control={control}
                />
              );
            })}</pre>
<p>當(dāng)我提交表單時(shí),fields數(shù)組中的值不顯示數(shù)據(jù),而fields數(shù)組之外的其他字段正常工作。 </p>
<p>這是組件的程式碼。 </p>
<pre class="brush:php;toolbar:false;">import { Box, Grid, IconButton, SvgIcon, TextField } from "@mui/material";
import React from "react";
import DeleteIcon from '@mui/icons-material/Delete';
import { Fragment } from "react";

const MoreFields = ({ register, remove, index, item }) => {
  return (
    <Fragment key={item.id}>
      <Grid item xs={12} sm={12} md={5} lg={4}>
        <TextField
          label="Category"
          fullWidth
          {...register(`ticketCategory.${index}.ticketCatName`)}
          name={`ticketCategory${index}.ticketCatName`}
          defaultValue={item.ticketCatName}
        />
      </Grid>

      <Grid item xs={12} sm={12} md={3} lg={3}>
        <TextField
          type="number"
          label="Price"
          fullWidth
          {...register(`ticketCategory.${index}.ticketCatPrice`)}
          name={`ticketCategory${index}.ticketCatPrice`}
          defaultValue={item.ticketCatPrice}
        />
      </Grid>

      <Grid item xs={12} sm={12} md={3} lg={3}>
        <TextField
          type="number"
          label="Total"
          fullWidth
          {...register(`ticketCategory.${index}.ticketCatTotal`)}
          name={`ticketCategory${index}.ticketCatTotal`}
          defaultValue={item.ticketCatTotal}
         
        />
      </Grid>

      <Grid item xs={4} sm={4} md={2} lg={2} alignSelf="center">
        <SvgIcon color='error' onClick={()=>remove(index)} sx={{cursor:'pointer'}}>
          <DeleteIcon size="medium" />
        </SvgIcon>
      </Grid>
      </Fragment>
  );
};

export default MoreFields;</pre>
<p>我可以新增和刪除字段,但是當(dāng)提交時(shí),值不會(huì)顯示。不知道為什麼,請(qǐng)幫幫我。 </p>
<p>我正在使用的hooks和函數(shù)。</p>
const { 註冊(cè)、handleSubmit、控制 } = useForm();
  const { 字段、追加、前置、刪除、交換、移動(dòng)、插入 } = useFieldArray(
    {
      控制,
      名稱(chēng):“門(mén)票類(lèi)別”,
    }
  );
  const addFields = () =>; {
    追加({ticketCatName:“”,ticketCatPrice:“”,ticketCatTotal:“”});
  };

  const 提交 = (資料) => {
    控制臺(tái).log(資料);
  };</pre></p>            
P粉176151589
P粉176151589

全部回覆(1)
P粉250422045

你應(yīng)該同時(shí)使用相同的名稱(chēng)來(lái)註冊(cè)和命名屬性:

<TextField
  label="Category"
  fullWidth
  {...register(`ticketCategory.${index}.ticketCatName`)}
  name={`ticketCategory.${index}.ticketCatName`}
  defaultValue={item.ticketCatName}
/>;

React Hook Form需要你在陣列名稱(chēng)中加入索引,因?yàn)樗褂命c(diǎn)表示法來(lái)存取巢狀欄位。例如,假設(shè)你有一個(gè)像這樣的物件數(shù)組:

{
  "ticketCategory": [
    {
      "ticketCatName": "A",
      "ticketCatPrice": 10,
      "ticketCatTotal": 100
    },
    {
      "ticketCatName": "B",
      "ticketCatPrice": 20,
      "ticketCatTotal": 200
    }
  ]
}

然後,每個(gè)輸入的名稱(chēng)應(yīng)該與表單資料中欄位的路徑相符。例如,第一個(gè)票類(lèi)別名稱(chēng)輸入應(yīng)該具有名稱(chēng)ticketCategory.0.ticketCatName,第二個(gè)票類(lèi)別價(jià)格輸入應(yīng)該具有名稱(chēng)ticketCategory.1.ticketCatPrice。這樣,React Hook Form可以控制輸入值到表單資料中。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板