reactjs - 反应将空对象添加到状态中的对象数组
问题描述
我有一个状态:
this.state = {
rowData
}
rowData = [
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"},
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"},
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"}
]
单击按钮时,我希望能够像这样添加一个空对象。
rowData = [
{MEMBER: "", ALIS: "", STATUS: ""}, //CLICK 1
{MEMBER: "", ALIS: "", STATUS: ""}, // CLICK 2 and so on
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"},
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"},
{MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3"}
]
如何更新状态以在按钮单击时包含空字符串。
解决方案
您可以使用扩展运算符:
this.setState({
rowData: [
{ MEMBER: "", ALIS: "", STATUS: "" },
...this.state.rowData
]
})
例如:
const rowData = [
{ MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3" },
{ MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3" },
{ MEMBER: "DATA1", ALIS: "DATA2", STATUS: "DATA3" }
];
class MyComponent extends React.Component {
state = {
rowData
};
handleClick = () => {
this.setState({
rowData: [
{ MEMBER: "", ALIS: "", STATUS: "" },
...this.state.rowData
]
});
};
render() {
return (
<>
<button onClick={this.handleClick}>Button</button>
{this.state.rowData.map(({ MEMBER, ALIS, STATUS }, i) => (
<p key={i}>
Member: {MEMBER}, Alis: {ALIS}, Status: {STATUS}
</p>
))}
</>
);
}
}
推荐阅读
- java - 如何在重新运行测试用例的 Testng 报告中删除失败的测试
- reactjs - React - 获取多个获取请求
- amazon-web-services - 如何使用 AWS DMS 从一个区域到另一个区域?
- python - 将 _io.BufferedReader 转换为 str 以进行 write()
- javascript - 如何在每列的末尾显示显示隐藏选项
- javascript - Hyperledger-Composer:无法从事务处理器函数中访问 javaScript split() 函数
- graphql - AppSync订阅授权问题
- javascript - Express.js 两个路由,例如单个模块中的注册和登录
- javascript - 在 HERE 地图上设置上下文菜单
- scala - 如何旋转 Spark 数据框表?