javascript - 映射 react Hook 后如何从api发送值

标签 javascript reactjs react-hooks

我正在使用 React 钩子(Hook),我试图将值发送到函数 delete 并执行函数 put

           <Fab aria-label="delete"
                      className={classes.fab}
                      value={vacation.id}
                      key={vacation.id}
                      onChange={setDeleteid(vacation.id)}
                      onClick={DeleteCard}>
                      <DeleteIcon />
                    </Fab>

这是函数

  const DeleteCard = (e) => {
e.preventDefault();

console.log('delete' + deleteid);
alert(deleteid)
const confirm = window.confirm(`You are sure you want to delete vacation number ?`);
if (confirm == true) {
await axios.delete(`http://localhost:4000/users/admin/delete/:${e}`)
} else {
  alert("You pressed Cancel!")
}

这是我的状态

     //vacation
  const [vacation, setVacation] = useState([]);
  const [deleteid, setDeleteid] = useState();
  //putcard
  const [description, setDescription] = useState("");
  const [destination, setDestination] = useState("");
  const [fromDate, setFromDate] = useState("");
  const [toDate, setToDate] = useState("");
  const [price, setPrice] = useState("");

显然我试图发送给状态的 id 没有进来,因为它记录了我 undifind


更新

这是我的状态

const [deleteid, setDeleteid] = useState('');

我想在这里发送,它给我未定义

  onChange={() => setDeleteid(value)}

最佳答案

这是因为您在 DOM 呈现时执行函数(它运行该函数一次)。要解决此问题,请将您的 onChange 事件更改为调用您的函数的箭头函数,如下所示:

onChange={() => setDeleteid(vacation.id)}

这应该可以解决问题,编码愉快!

关于javascript - 映射 react Hook 后如何从api发送值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079943/

相关文章:

javascript - Cesiumjs 中的 Entity 和 Primitive 有什么区别?

javascript - 是否存在 .closest() 的替代方案?

javascript - 如何在 iOS6 上通过浏览器访问 IFA

reactjs - 防止 Material-UI 对话框将内联样式应用于正文

reactjs - 如何创建接收依赖项的自定义 Hook ?

javascript - 设置状态时,React context api 返回未定义

javascript - 为什么这段 html 和 javascript 代码不起作用?

javascript - React Router 静默推送

javascript - 具有分页意外结果的 React-Table 排序

javascript - 为什么在初始页面加载时多次调用 React Ref 回调(作为箭头函数或内联函数)?