This commit is contained in:
2021-06-30 00:19:33 +08:00
parent e61212c83f
commit b88154df40
5 changed files with 85 additions and 25 deletions
+24 -23
View File
@@ -1,25 +1,26 @@
import logo from './logo.svg'; import React from 'react'
import './App.css'; import Confirm from './components/index'
class App extends React.Component {
function App() { constructor(){
return ( super()
<div className="App"> }
<header className="App-header"> del(){
<img src={logo} className="App-logo" alt="logo" /> Confirm("确定要删除吗",[
<p> {text:"cancel",onpress:()=>{
Edit <code>src/App.js</code> and save to reload. console.log("点击了取消按钮")
</p> }},{
<a text:"sure",onpress:()=>{
className="App-link" console.log("点击了确定按钮!")
href="https://reactjs.org" }
target="_blank" }
rel="noopener noreferrer" ])
> }
Learn React render(){
</a> return (
</header> <div>
</div> <button onClick={this.del.bind(this)}>confirm</button>
); </div>
)
}
} }
export default App; export default App;
+49
View File
@@ -0,0 +1,49 @@
import React from 'react'
import './style.css'
class Confirm extends React.Component{
constructor(){
super()
this.state={
text:'xxxxxxx',
btnOptions:[]
}
}
setMessage(title,btnOptions,el){
this.div=el;
this.setState({text:title,btnOptions:btnOptions})
}
clickBtn(index){
if(this.state.btnOptions[index].onpress){
this.state.btnOptions[index].onpress();
}
document.body.removeChild(this.div);
}
render(){
return(
<div className="confirmContainer">
<li className="title">{this.state.text}</li>
{/* <ul className="handle">
{this.state.btnOptions.length>0 && this.state.btnOptions.map((item,index)=>{
return (
<li className="btn"
key={index}
onClick={this.clickBtn.bind(this,index)}
>{item.text}</li>
)
})}
</ul> */}
<ul className="handle">
{this.state.btnOptions.length>0 && this.state.btnOptions.map((item,index)=>{
return (
<li className="btn"
key={index}
onClick={item.onpress}
>{item.text}</li>
)
})}
</ul>
</div>
)
}
}
export default Confirm
+10
View File
@@ -0,0 +1,10 @@
import React from 'react'
import ReactDom from 'react-dom';
import ConfirmDom from './confirm'
export default function(title,btnOptions){
let div=document.createElement('div');
document.body.appendChild(div);
let confirmInt=ReactDom.render(<ConfirmDom></ConfirmDom>,div);
confirmInt.setMessage(title,btnOptions,div)
}
View File
+2 -2
View File
@@ -1,10 +1,10 @@
import React from "react"; import React from "react";
import ReactDom from "react-dom"; import ReactDOM from 'react-dom';
import Hehe from "./confirm.js"; import Hehe from "./confirm.js";
export default function (ops, btn) { export default function (ops, btn) {
let div = document.createElement("div"); let div = document.createElement("div");
document.body.appendChild(div); document.body.appendChild(div);
let toastInt = ReactDom.render(<Hehe />, div); let toastInt = ReactDOM.render(<Hehe />, div);
toastInt.setMessage(ops, btn, div); toastInt.setMessage(ops, btn, div);
console.log(btn); console.log(btn);
} }