基本上我想做的是让用户单击一个按钮,将我从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调用上添加延迟,但这没有任何作用,我无法弄清为什么必须两次单击按钮。有什么想法吗?
答案 0 :(得分:0)
经过一番挖掘-我发现许多建议的不同解决方案都是普遍存在的问题-没有一个可行。
我发现this.setState
并没有导致表实际更新/渲染。现在,通过替换为this.forceUpdate();
,该表可以正常工作。这不是解决问题的方法,但是对于初学者来说,这就是我所能做的。