javascript - ReactJS - 如何在 map 函数中设置状态

标签 javascript reactjs

我得到了一个对象,里面有另一个对象,我需要像这样渲染 DOM:

  • 事件
    • 门票 1
      • 批处理 1
        • 姓名
      • 批处理 2
        • 姓名
      • 批处理 3
        • 姓名
    • 门票 2
      • 批处理 1
        • 姓名
      • 批处理 2
        • 姓名
{ this.state.dates.map((date, i) =>
    <span className="event-date" key={i}>
     { date.date }
    </span>
    this.setState({tickets: date.tickets}) //Here, I need to update an object to map in another place
)}

./src/pages/Event/Event.js Syntax error: D:/YEAPPS/marketplace/pwa/src/pages/Event/Event.js: Unexpected token, expected , (54:32)

Click to see the object

最佳答案

不要在渲染函数中调用 setState,这会导致不必要的重新渲染,即不要在此处使用您的票证更新状态

使用其他生命周期 Hook 在组件内设置状态,例如componentDidMount,然后简单地映射您的 this.state.tickets.map(),或者像您已经在做的那样,this.state.dates.map()

关于javascript - ReactJS - 如何在 map 函数中设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56526111/

相关文章:

javascript - 如何在新行而不是主行中呈现 CKEditor5 工具栏按钮?

javascript - 如何使用 jQuery 转到特定部分?

javascript - 为什么需要在 React.js 中创建虚拟 DOM 而不是直接更新浏览器 DOM 中的所有节点?

reactjs - 如何使用 Jest 模拟第三方 React 组件?

javascript - 当使用 JQuery 更正错误时,输入字段突出显示绿色

javascript - 带逗号的 jQuery 模板格式

reactjs - 拖放库 dnd-kit 在我的 React 示例中不起作用

reactjs - 使用 React Native 的类似 Instagram 的过滤器

css - React JS react-bootstrap PopOver 使用 className 更改不同按钮的背景颜色

javascript - 如何使用javascript生成codeigniter的form_input