使用 useState 挂钩将元素推送到数组

IT技术 reactjs
2021-05-03 14:04:45

我试图在 useState 中推送新标签我怎么可能做到这一点

const [mydata, setData] = useState({
    user_gender: "",
    user_relationship: "",
    user_birth_day: "",
    user_birth_month: "",
    user_gender_interest: "",
    user_birth_year: "",
    tags: []
  });

const handleAddChip = chip => {
    setData({
      ...mydata,
      tags: chip
    });
  };
1个回答

使用updater提供的 setter 版本返回一个新数组而不是useStateconcatpush

const handleAddChip = chip => {
    setData(previousData =>({
       ...previousData,
       tags: previousData.tags.concat(chip)
     }));
};

您也可以在没有更新程序版本的情况下执行此操作,但通常不是一个好主意。

setData({...myData, tags: myData.tags.concat(chip)})