I'm generating a list of persons and 'delete buttons' via map()
to be rendered in a React component (passing the mapped list through props and rendering inside a <p>
tag).
When react first renders, it triggers all buttonsonClick()
and the buttons cease working.
Why this behavior happens, please?
const deletePerson = (id) => {
console.log(`deleting id: ${id}`)
}
const mappedPersons = persons.map(person =>
<li key={person.name}>
{`${person.name} - `}
{`${person.phone} `}
<button onClick={deletePerson(`${person.id}`)} value={person.id}>
delete person
</button>
</li>
)
console:
deleting id: 1
deleting id: 2
deleting id: 3
deleting id: 4
deleting id: 5
deleting id: 6
deleting id: 7
deleting id: 8