当前位置: 首页 > 后端技术 > Node.js

React封装了一个类安卓的toast控件消息

时间:2023-04-03 14:17:35 Node.js

项目中经常使用类安卓的toast控件。封装这样一个组件是每个项目都必须要做的事情。从'react'导入React;从'react-dom'导入ReactDOM;让seed=0;constnow=Date.now();functiongetUuid(){return`rcNotification_${now}_${seed++}`;}classMessageextendsReact.Component{constructor(props){super(props);this.state={数据:[]};this.add=this.add.bind(this);this.remove=this.remove.bind(this);}add(notice){console.log('msg123','add');this.setState({data:[...this.state.data,notice]});常量那个=这个;setTimeout((()=>that.remove(notice.key)),2000);}remove(key){console.log('msg123','remove');consttemp=this.state.data.filter(item=>{constresult=item.key!=key;返回结果;});this.setState({data:[...temp]});}render(){console.log('msg123',this.state.data);return({this.state.data.map(item=>{if(item.type=='success'){返回{item.msg}

;}返回{item.msg}
;})}
);}}letinstance;Message.newInstance=function(){if(instance){returninstance;}constdiv=document.createElement('div');文档.body.appendChild(div);constmessage=ReactDOM.render(,div);console.log('msg123','newInstance');instance={success(msg){console.log('msg123','success');message.add({type:'success',msg,key:getUuid()});},warning(msg){console.log('msg123','warning');message.add({type:'warning',msg,key:getUuid()});},组件:消息,};返回实例;};导出默认消息;封装这样一个组件,具体使用方法如下:使用方法:第一步:componentWillMount(){this.message=Message.newInstance();第二步需要this.message.success('xxx');this.message.warning('xxx);