Как отправить значения из API после сопоставления ответных хуков - PullRequest
2 голосов
/ 24 сентября 2019

Я использую реагирующие хуки, и я пытаюсь отправить значение функции 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("");

Видимо, идентификатор, который я пытаюсь отправить в состояние, не приходит, потому что он записывает меня неопределенным


ОБНОВЛЕНИЕ

Это мое состояние

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

Здесь я хочу отправить, и это дает мне неопределенное

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

1 Ответ

1 голос
/ 24 сентября 2019

Это потому, что вы выполняете функцию во время визуализации DOM (она запускает функцию один раз).Чтобы это исправить, измените событие onChange на функцию стрелки, которая вызывает вашу функцию, например:

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

Это должно помочь, счастливое кодирование!

...