javascript – 删除React组件中onClick事件的特定表行
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 删除React组件中onClick事件的特定表行,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3491字,纯文字阅读大概需要5分钟。
内容图文
在删除记录之后,我是React的新手并且在如何操纵DOM方面苦苦挣扎.我有一些反应组件,但我关注的是删除我设置的rails api中的记录.我在Ajax onclick调用上删除了ok的记录,但是不知道使用React删除特定行的最佳方法.
表充满了数据
var ContactAll = React.createClass({
getInitialState: function() {
return {
contacts: []
}
},
componentDidMount: function() {
$.ajax({
dataType: "json",
url: '/all-contacts',
type: "GET",
context: this,
success: function(data, status, xhr) {
this.setState({ contacts: data });
}
});
},
render: function(){
if(this.state.contacts == 0) {
return (
<div>Loading</div>
)
} else {
var contactComponents = this.state.contacts.map(function(contact, i) {
var full_name = contact.first_name + ' ' + contact.last_name
return <tr key={i} className="contact">
<td>{ full_name}</td>
<td></td>
<td>{ contact.email_address }</td>
<td>{ contact.phone_number }</td>
<td>{ contact.company_name }</td>
<td><DeleteButton email={contact.email_address} /></td>
</tr>;
});
return <div>
<table>
<tbody>
<tr>
<th>Contact Name</th>
<th></th>
<th>Email Address</th>
<th>Phone Number</th>
<th>Company Name</th>
</tr>
{contactComponents};
</tbody>
</table>
</div>
}
}
});
删除ContactAll组件中的按钮
var DeleteButton = React.createClass({
onClick: function() {
var email = this.props.email;
$.ajax({
data: {email_address: email },
url: '/delete-contact',
dataType: 'html',
type: "POST",
success: function(data, status, xhr) {
$('.delete-success').slideDown(400);
setTimeout(function() { $(".delete-success").slideUp(400); }, 5000);
}
});
},
render: function(){
return(
<button onClick={() => { this.onClick(this.props.email) }}>Delete</button>
)
}
});
删除单击相应行的删除按钮时删除的特定行的最佳方法是什么?
谢谢!
解决方法:
创建一个删除函数,然后将数组的索引发送到该函数并使用splice删除该数组条目.将对此deleteRow函数的引用传递给子组件,并从那里调用它,如this.props.deleteRow(this.props.index);检查完整的代码
喜欢
deleteRow: function(index) {
var contacts = [...this.state.contacts];
contacts.splice(index, 1);
this.setState({contacts});
},
var ContactAll = React.createClass({
getInitialState: function() {
return {
contacts: []
}
},
componentDidMount: function() {
$.ajax({
dataType: "json",
url: '/all-contacts',
type: "GET",
context: this,
success: function(data, status, xhr) {
this.setState({ contacts: data });
}
});
},
deleteRow: function(index) {
var contacts = [...this.state.contacts];
contacts.splice(index, 1);
this.setState({contacts});
},
render: function(){
if(this.state.contacts == 0) {
return (
<div>Loading</div>
)
} else {
var contactComponents = this.state.contacts.map(function(contact, i) {
var full_name = contact.first_name + ' ' + contact.last_name
return <tr key={i} className="contact">
<td>{ full_name}</td>
<td></td>
<td>{ contact.email_address }</td>
<td>{ contact.phone_number }</td>
<td>{ contact.company_name }</td>
<td><DeleteButton onClick ={this.deleteRow.bind(this)} index={i} email={contact.email_address} /></td>
</tr>;
}.bind(this));
return <div>
<table>
<tbody>
<tr>
<th>Contact Name</th>
<th></th>
<th>Email Address</th>
<th>Phone Number</th>
<th>Company Name</th>
</tr>
{contactComponents};
</tbody>
</table>
</div>
}
}
});
var DeleteButton = React.createClass({
onClick: function() {
var email = this.props.email;
this.props.deleteRow(this.props.index);
$.ajax({
data: {email_address: email },
url: '/delete-contact',
dataType: 'html',
type: "POST",
success: function(data, status, xhr) {
$('.delete-success').slideDown(400);
setTimeout(function() { $(".delete-success").slideUp(400); }, 5000);
}
});
},
render: function(){
return(
<button onClick={() => { this.onClick(this.props.email) }}>Delete</button>
)
}
});
内容总结
以上是互联网集市为您收集整理的javascript – 删除React组件中onClick事件的特定表行全部内容,希望文章能够帮你解决javascript – 删除React组件中onClick事件的特定表行所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。