Неперехваченная ошибка типа: Не удается прочитать свойства неопределенного (идентификатор чтения) в HTMLButtonElement.btn.onclick

#javascript #node.js #api #express #axios

Вопрос:

Я пытаюсь получить доступ ._id сюда.
итак, у меня есть прослушиватель событий в качестве основного, затем я вызываю ответ от Axios в качестве метода .get.
В исключении обещания , которое есть .then , я равняюсь тому dataUsers = response.data , которое даст мне всех пользователей в базе данных, если я выйду из нее.
У меня есть if и else, и когда else выполняет цикл for, он зациклит всех пользователей и отобразится в таблице.
Итак, у меня есть редактировать и удалять кнопки, которая будет отображаться на циклы и будет доступна каждому пользователю, что они могут отредактировать или удалить ее, если они хотят, чтобы сделать это, я создал onclick функции/метода addEventListener внутри цикла for и в onclick функции/для EventListener функции я передаю функцию, которая определяется за пределами основных для EventListener.
Моя проблема в том, если я передаю параметр dataUsers[я].Параметр _id (параметр _id-это идентификатор, который будет в ответ ) в функцию внутри функции onclick функции, это дает мне ошибку, я написал в заголовке , что это параметр _id не определено.
но
эта ошибка устраняется, когда я создал переменную let внутри цикла for, которая равна dataUsers[i] , и если я передам variable._id параметр функции, который находится внутри onclick функции, я получу свой ответ.
Может ли кто-нибудь объяснить мне, как это происходит и почему? спасибо 1000
Мой код приведен ниже :

 BtnAllusers.addEventListener("click", () =gt; {  document.getElementById("tbod").textContent = ""  axios  .get("http://localhost:3000/users")  .then((response) =gt; {  dataUsers = response.data;  console.log(dataUsers);  if (dataUsers.length === 0) {  alert("Please Create a User first!!");  } else {  for (i = 0; i lt; dataUsers.length; i  ) {    //let iddata = dataUsers[i]  //console.log(iddata);   //console.log(dataUsers[i]._id);    let trUsers = document.createElement("tr");  let td1 = document.createElement("td");  let td2 = document.createElement("td");  let td3 = document.createElement("td");     var btn1edit = document.createElement('button')  btn1edit.textContent = "EDIT"  //btn1edit.addEventListener('click', function() { EDIT(iddata._id) })   var btn2delete = document.createElement('button')  btn2delete.textContent = "DELETE"  btn2delete.onclick = () =gt; { DELETE(dataUsers[i]._id) } //? Please Explain this line error.  //btn2delete.onclick = function () { DELETE(iddata._id) }   let td4 = document.createElement("td")  let td5 = document.createElement("td")    td1.appendChild(document.createTextNode(dataUsers[i].name));  td2.appendChild(document.createTextNode(dataUsers[i].email));  td3.appendChild(document.createTextNode(dataUsers[i].address));  td4.appendChild(btn1edit)  td5.appendChild(btn2delete)    trUsers.appendChild(td1);  trUsers.appendChild(td2);  trUsers.appendChild(td3);  trUsers.appendChild(td4);  trUsers.appendChild(td5);  document.getElementById("tbod").appendChild(trUsers);  //console.log(dataUsers[i]._id);  }   }  })  .catch((error) =gt; {  console.log(error);  }); });