首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应行为在渲染时触发所有按钮

反应行为在渲染时触发所有按钮
EN

Stack Overflow用户
提问于 2020-01-28 22:42:18
回答 1查看 97关注 0票数 0

我正在通过map()生成一个人员列表和“删除按钮”,并在React组件中呈现(通过props传递映射列表并在<p>标记中呈现)。

当react第一次渲染时,它会触发所有按钮onClick(),并且按钮停止工作。

为什么会发生这种行为?

代码语言:javascript
复制
  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>
)

控制台:

代码语言:javascript
复制
deleting id: 1
deleting id: 2
deleting id: 3
deleting id: 4
deleting id: 5
deleting id: 6
deleting id: 7
deleting id: 8
EN

回答 1

Stack Overflow用户

发布于 2020-01-28 22:42:18

下面的答案就是:React onClick function fires on render

将按钮onClick更改为:

代码语言:javascript
复制
<button onClick={() => deletePerson(`${person.id}`)} value={person.id}>
        delete person
      </button>

使贴图在渲染时停止调用函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59951220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档