如何在 React 中更新数据库中的值

IT技术 reactjs use-state
2022-07-16 08:42:37

当我在这里编辑表单时,我需要显示数据库中的值。那么我怎样才能得到这个值

const dataValue = ndata.filter((obj) => obj._id === dataid ).map((aa)=> {
   return (
      {aa.AddressTitle}
   )
})

数据值正确输入,但我无法将其显示为状态中的默认值为什么

const [formData, setFormData] = useState({
    billingAddr: false,
    shippingAddr: false,
    AddressTitle: isEdit===true ? (dataValue):("")
  });

我应该在 AddressTitle 中将此显示为默认值。

更新任务

   useEffect(() => {
        const api = async () => {
            try {
              const response = await authService.getAddr();
              setndata(response?.data);
              response.data
                ?.filter((obj) => obj._id === dataid)
                .map((data) => setFormData({ ...formData, AddressTitle: data.AddressTitle }));
            } catch (error) {
              console.log(error);
            }
          };
          api();
    });   

  <TextField fullWidth id="outlined-basic" label="Address Title"  
       variant="outlined" size="small"
       value={formData.AddressTitle} 
       onChange={(e) => { setFormData(formData => ({ ...formData,  
       AddressTitle: e.target.value }));
        }} />

当我单击编辑时,我在文本字段中看到了正确的值,但我无法更改它。所以我应该能够更新我输入的文本字段。传入的数据在文本字段中保持不变,我该如何更新它?

2个回答

dataValue 是一个数组。

试试这个然后告诉我

    const [formData, setFormData] = useState({
      billingAddr: false,
      shippingAddr: false,
      AddressTitle: isEdit===true ? yourDisplayFunction() :("")
    });
    
    const yourDisplayFunction = (dataValue) => {
      const dataValues = dataValue.map(value => {
        return <>dataValue.AdressTitle</>
      });
    
      return <>dataValues</>
    }

dataValue是一个对象数组,因为[x, y, z].map(item => {item})返回[ {x}, {y}, {z}]

因此,您期望string来自对象数组的 a 。(“a”不等同于dataValue