Слияние кода завершено, страница обновится автоматически
import * as React from 'react';
import ClipboardJS from 'clipboard';
import {
message,
} from 'component/antd';
const triggerEvent = (eventName: string, element: Element) => {
let event;
const ele = element || document;
event = document.createEvent('HTMLEvents');
event.initEvent(eventName, true, true);
ele.dispatchEvent(event);
};
export class Clipboard extends React.Component<any> {
public state = {
text: '',
};
private clipboard: any = null;
private dom: Element = null;
public componentDidMount() {
const clipboard = this.clipboard = new ClipboardJS('.___clipboard', {
text(trigger: Element) {
return trigger.getAttribute('data-text');
},
});
clipboard.on('success', (e: any) => {
message.success('复制成功!');
e.clearSelection();
});
clipboard.on('error', (e: any) => {
message.error('复制失败!' + e);
});
}
public componentWillUnmount() {
this.clipboard.destroy();
}
public copy(text: string) {
this.setState({ text });
setTimeout(() => triggerEvent('click', this.dom), 0);
}
public render() {
return (
<div className="___clipboard" data-text={this.state.text} ref={dom => this.dom = dom} />
);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )