【发布时间】:2020-09-25 17:15:20
【问题描述】:
我是 React 的新手,我的问题很简单,我有一个表单,它有一个输入字段,可以获取一些输入数据,在提交表单时,输入数据应该呈现为一行并删除按钮,我们可以删除它如果 onClicked 的数据。我已经实现了行的呈现,但在删除功能方面存在疑问。
App.js 文件的代码是,
import React, { Component } from "react";
export default class App extends Component {
state = {
names: [],
};
handleSubmit = (event) => {
event.preventDefault();
let value = document.getElementById("namevalue").value;
const obj = { id: Date.now(), value };
this.setState({
names: [obj, ...this.state.names],
});
document.getElementById("myform").reset();
return;
};
renderTable() {
return (
this.state.names &&
this.state.names.map((name) => {
const { id, value } = name; //destructuring
return (
<tr key={id}>
<td>{value}</td>
<td>
<input
type="button"
value="Delete"
onClick={this.deleteName(id)}
/>
</td>
</tr>
);
})
);
}
deleteName = (id) => {
console.log(id);
/* this.setState({
names: this.setState.names.filter((name) => name.id !== id),
});*/
};
render() {
return (
<>
<form onSubmit={this.handleSubmit} id="myform">
<label>
Name:
<input type="text" name="name" id="namevalue" />
</label>
<input type="submit" value="Submit" />
</form>
{/* Table */}
<br />
<table>
<tbody>
<tr>
<th>Names</th>
<th>Operation</th>
</tr>
{/* Render dynamic rows
*/}
{this.renderTable()}
</tbody>
</table>
</>
);
}
}
我想在单击删除按钮时删除该行,但单击按钮时会引发错误,
【问题讨论】:
-
deleteName(id)} />
-
嗨@KostyaTresko,感谢您的回复,'this' 关键字是否会出现在方法名称的前面,如 onClick={(id) =>this.deleteName(id)}
-
我还是不能删除值
标签: javascript html reactjs filter