我正在开发一个联系人应用程序,其中所有数据都临时存储在客户端。我使用了material-ui表来显示联系人。
单击右下角添加新联系人按钮时,会显示一个包含表单的对话框。单击保存按钮时,数据将保存在状态中。但我面临的问题是如何在表格中插入一个新的行,其中包含表单数据。我搜索了它,但我甚至找不到一个关于相同的查询。添加新联系人按钮位于AddContact
组件中,表位于Contacts
组件中,但两者都具有Main
中的相同父组件。所以简而言之,我无法在表格中显示新的联系人。
答案 0 :(得分:3)
在array
变量中维护state
,当您在对话框中点击提交时,在state array
中推送该数据。使用array
动态生成行,如下所示:
<Table>
<TableHeader>
<TableRow>
/*Define the headers*/
</TableRow>
</TableHeader>
<TableBody>
{this._generateRows()}
</TableBody>
</Table>
像这样编写_generateRows
函数来生成行:
_generateRows(){
return this.state.data.map(el => {
return <TableRow>
<TableRowColumn>{el.a}</TableRowColumn>
<TableRowColumn>{el.b}</TableRowColumn>
<TableRowColumn>{el.c}</TableRowColumn>
</TableRow>
})
}
注意:将 el.a,el.b,el.c 替换为原始数据。
答案 1 :(得分:0)
我看到你正在使用反应。这意味着当您将项目列表绑定到 渲染函数中的行组件。
{list.map(item => <RowComponent key={item.id}/>)}
现在,当您单击按钮时,您只需push
到此列表,您的新行就会显示在屏幕上。