如何将一个react组件进行静态化调用
ant-design的message组件可以使用message.xxx的方法调用,调用代码如下:
import { message, Button } from 'antd'; const info = () => { message.info('This is a normal message'); }; ReactDOM.render( <Button type="primary" onClick={info}> Display normal message </Button>, mountNode, );
message组件支持静态化调用的关键代码如下:
* 支持静态方法调用:Message.show(message, [type = 'success'], [duration = 3], [onClose = null]) * @class Message * @extends {Component} */ class Message extends Component { static propTypes={ type: PropTypes.oneOf(['success', 'warning', 'error', 'info']).isRequired, // 消息类型 message: PropTypes.node, // 消息内容 onClose: PropTypes.func, // 关闭时的回调 duration: PropTypes.number // 自动关闭的延时,单位秒。设为 0 时不自动关闭。 } state={open: true} static defaultProps={duration: 2} handleClose() { this.setState({open: false}, () => { this.props.onClose && this.props.onClose() }) } render() { const {message} = this.props return ( <div>{message}</div> ) } } // 静态调用方式 Message.show = function successInfo(message, type = 'success', duration = 2, onClose = null) {
let container = document.querySelector('#com-confirm-container');
if (!container) {
container = document.createElement('div');
container.id = 'com-confirm-container';
document.body.appendChild(container);
}
ReactDOM.render(<Message type={type} message={message} duration={duration} onClose={onClose} />, messageContainer)
}
export default Message
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了