将对象打印到表onClick-在单击两次后才打印

时间:2018-11-29 14:26:48

标签: javascript reactjs material-ui

基本上我想做的是让用户单击一个按钮,将我从Web服务获得的对象打印到表中。这有些起作用,但是我必须单击两次按钮才能使其打印。 更详细的信息:该按钮在handleClick中使用onClick={this.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调用上添加延迟,但这没有任何作用,我无法弄清为什么必须两次单击按钮。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

经过一番挖掘-我发现许多建议的不同解决方案都是普遍存在的问题-没有一个可行。

我发现this.setState并没有导致表实际更新/渲染。现在,通过替换为this.forceUpdate();,该表可以正常工作。这不是解决问题的方法,但是对于初学者来说,这就是我所能做的。