Home > Net >  React: e.target.? logs undefined
React: e.target.? logs undefined

Time:10-25

I am trying to setState to q.content. However, it logs as undefined and I'm not sure how I'm using e.target incorrectly. It logs q.name fine.

I have a button that onClick calls a function that sets the constants.

<button
   onClick={handleDelete}
   value={q.id}
   name={q.name}
   content={q.content}
   >

In the function I have:

  function handleDelete(e) {
    e.preventDefault();
    setDeleteItem(e.target.value);
    setConfirmModal(true);
    setDeleteContent(e.target.content);
    setDeleteName(e.target.name);
    console.log(e.target.content);
  }

But it just doesn't seem to work.

CodePudding user response:

Not all attributes are available as DOM properties. While you can call e.target.value, you cannot call e.target.content in like manner. Instead, you'll need to access the element's attributes to get that value. To do so, check the e.target.attributes object, or use e.target.getAttribute.

CodePudding user response:

Try this to pass attribute value to the function:

function handleDelete(e) {
    console.log(e.target.getAttribute('content')) //'CONTENT!"
    setContent(e.target.getAttribute('content')) //set as state
}

<button
    onClick={handleDelete}
    content={'CONTENT!'}
></button>
  • Related