【发布时间】:2018-07-03 13:06:17
【问题描述】:
我有一个 Alerts 组件,它负责从提供给它的 props 的 JSON 中呈现警报:
alert.js(为简洁起见)
createAlert(alerts) {
return alerts.map(content => (
<Col key={content.ID} s={12}>
<div className="chip">
<Icon className="alert">error_outline</Icon>
<p>{content.Comment}</p>
<span onClick={() => this.props.onRead(content.ID)}>
<Icon className="closeAlert">close</Icon>
</span>
</div>
</Col>
));
}
render() {
let content = {};
if (!this.props.content) {
//Alerts are null so they are still loading.. show loader
content = this.createLoader();
} else if (!this.props.content.success){
//Error getting alerts
content = this.createAlertError(this.props.content.error);
}
else if (this.props.content.alerts.length === 0) {
//Alert array is null, therefor no alerts
content = this.createNoAlerts();
} else {
//Render Alerts
content = this.createAlert(this.props.content.alerts);
}
return <div>{content}</div>;
}
}
在上面的代码片段中,你可以看到如果
this.props.alerts
是一个有元素的数组,那么它将运行
createAlert()
这将创建一个 React 组件数组(在这种情况下,它只是 React-Materialize 组件,它只是一个 <div></div>)
我感兴趣的部分是带有 onClick 事件的跨度
<span onClick={() => this.props.onRead(content.ID)}>
<Icon className="closeAlert">close</Icon>
</span>
这会从父组件运行一个事件。 在parent中运行的方法如下:
alertRead(id) {
this.props.deleteAlert(id);
}
我想要的是在单击时将旋转加载器图标添加到按钮中的某种方式,在 jQuery 中它将是:
$(button).on("click", function(){
this.html("<i class='fa fa-spin fa-spinner'></i>"); //Spinner Icon
});
问题是,如何编辑点击按钮的HTML?
【问题讨论】:
-
请编辑您的问题以使其清楚一点:代码的大sn-p之后的第一句话不完整。如果你清楚一点,也许我可以帮助你:)
标签: reactjs