【问题标题】:Print object to table onClick - doesnt print until clicked twice将对象打印到表格 onClick - 在单击两次之前不打印
【发布时间】:2019-02-08 21:59:32
【问题描述】:

基本上,我想做的是让用户单击一个按钮,将我从 Web 服务获取的对象打印到表格中。这有点工作,但我必须单击按钮两次才能打印。 更多细节:按钮使用onClick={this.handleClick},在handleClick内部完成了一些事情,包括获取有问题的对象并将其存储在结果变量中,然后调用addToTable(result)。

addToTable(result){
this.state.rows.push(
  <TableRow>
   <TableCell> {result.example1} </TableCell>
   <TableCell> {result.example2} </TableCell>
  <TableRow>
 )
this.setState({rows: rows});
}

表格本身有一个硬编码的标题行,并引用正文的行,例如:

<TableBody>
 {this.state.rows}
</TableBody>

我尝试在 addToTable 调用中添加延迟,但这没有任何作用,我无法弄清楚为什么我必须单击该按钮两次。有什么想法吗?

【问题讨论】:

    标签: javascript reactjs material-ui


    【解决方案1】:

    经过一番挖掘 - 我发现这个问题在许多不同的建议修复程序中都很常见 - 没有一个有效。

    我发现this.setState 并没有导致表格实际更新/呈现。通过替换为this.forceUpdate();,该表现在可以正常工作。这不是一个想法修复,但对于初学者来说,这就是我可以开始工作的全部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-12
      • 2012-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      相关资源
      最近更新 更多