In diesem Artikelbeispiel wird der spezifische Code des globalen Popup-Fensters zur Reaktionskapselung als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt Pop-up-Effekt-Diagramm Dateilayout index.js /* eslint-deaktivieren reagieren/kein-Render-Rückgabewert */ importiere React, {Komponente} von 'react' importiere { ist, fromJS } von 'unveränderlich' ReactDOM von „react-dom“ importieren importiere './alert.less' const schließen = erfordern('../images/guanbi.png') const Zeile = erforderlich('../images/line.png') const Standardstatus = { Alarmstatus: falsch, alertTip: null, alertTitle: 'Details', schließenAlarm: () => {} } Klasse Toptips erweitert Komponente { Zustand = { …Standardstatus } //CSS-Animationskomponente wird auf die Zielkomponente FirstChild = props => { eingestellt const childrenArray = React.Children.toArray(props.children) returniere childrenArray[0] || null } // Popup-Fenster schließen confirm = () => { const das = dies console.log(das) dies.setState( { Alarmstatus: falsch }, () => { dieser.Zustand.Alarm schließen() } ) } öffnen = Daten => { const Optionen = Daten || {} Optionen.alertStatus = true dies.setState({ ...Standardstatus, ...Optionen }) } schließen = () => { const das = dies dieser.Zustand.Alarm schließen() dies.setState({ …Standardstatus }) } sollteComponentUpdate = (nextProps, nextState) => { zurückkehren ( !ist(vonJS(this.props), vonJS(nextProps)) || !ist(vonJS(dieser.Zustand), vonJS(nächsterZustand)) ) } rendern() { const { alertStatus, alertTip, alertTitle } = dieser.Status console.log(AlarmTip, AlarmTitel) zurückkehren ( <div Klassenname = "alert-con" Stil = {Alarmstatus? {Anzeige: 'Block'}: {Anzeige: 'keine'}} > <div Klassenname = "Alarm-Kontext"> <div className="alert-content-title">{alertTitel}</div> <img className="alert-content-line" src={line} alt="line" /> <div className="alert-content-detail">{alertTip}</div> <Bild Rolle="Präsentation" beiKlick={() => { dies.bestätigen() }} Klassenname = "Alarm schließen" src={schließen} alt="Schließen" /> </div> </div> ) } } const div = Dokument.createElement('div') const props = {} Dokument.Body.AnhängenKind(div) const Box = ReactDOM.render(React.createElement(Toptips, props), div) Standardbox exportieren weniger .alert-con { Position: fest; oben: 0; links: 0; Breite: 100 %; Höhe: 100%; Hintergrund: rgba(255, 255, 255, 0,3); Z-Index: 222; } .alert-context { // Hintergrundfarbe: #fff; // Rahmenradius: 16px; Position: relativ; // Höhe: 500px; Höhe: 90%; Breite: 750px; Rand: 40px auto 0; Hintergrund: URL (../images/alertBJ.png) No-Repeat-Center; Hintergrundgröße: 100 % 100 %; .alert-close{ Breite: 30px; Höhe: 30px; Position: absolut; rechts: 30px; oben: 30px; } .alert-content-title{ Breite: 100 %; Höhe: 80px; Zeilenhöhe: 80px; Farbe: #fff; Textausrichtung: zentriert; Schriftgröße: 36px; Schriftstärke: fett; // Hintergrund: URL (../images/line.png) no-repeat links unten; } .alert-content-line{ Breite: 100 %; Höhe: 20px; Rand oben: -44px; Rand links: -6px; } .alert-detais-list{ Breite: 102 %; Höhe: 100%; Überlauf-y: automatisch; Polsterung: 20px 60px; .alert-detais-list-C{ P{ &:n-tes-Kind(1){ Schriftgröße: 14px; Zeilenhöhe: 20px; Farbe: #FFFFFF; Buchstabenabstand: 1,4px; } &:n-tes-Kind(2){ Zeilenhöhe: 24px; Schriftgröße: 18px; Farbe: #FFFFFF; } } } } .alert-content-detail{ // Höhe: 100 %; Höhe: berechnet (100 % – 100 Pixel); /* Überlauf-y: auto; */ Überlauf: versteckt; Breite: 98 %; Rand oben: -26px; } .alert-details-pdf{ Breite: 102 %; Höhe: 100%; Überlauf-y: automatisch; Polsterung: 20px 60px; .alert-details-button{ Anzeige: Flex; Flex-Richtung: Reihe; Inhalt ausrichten: Flex-Ende; Rand unten: 10px; P{ Farbe: #fff; Zeilenhöhe: 35px; Schriftgröße: 16px; Rand rechts: 20px; } A{ Zeilenhöhe: 35px; Schriftgröße: 16px; Rand rechts: 20px; } } } .cameraWrap{ Breite: 100 %; Höhe: 102%; Box-Größe: Rahmenbox; Polsterung: 12px 4px 0 14px; } } Verwendung
Toptips aus "./Toptips" importieren Toptipps.open({ alertTitle: 'Kommentardetails', AlarmTipp: that.htms(Wert), closeAlarm: Funktion () { console.log("Geschlossen..."); } }); htms = Wert => { zurück (<div className="alert-detais-list"> <div className="alert-detais-list-C"> <p>Kommentarinhalt:</p> <p>{val.fdTitle}</p> </div> <div className="alert-detais-list-C"> <p>Kommentardetails:</p> <p>{val.fdTitle}</p> </div> <div className="alert-detais-list-C"> <p>Maßnahmen und Ergebnisse:</p> <p>{val.fdContent}</p> </div> <div className="alert-detais-list-C"> <p>Fortschrittsdetails:</p> <p></p> </div> </div>) } Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Tiefgreifendes Verständnis der logischen Architektur von MySQL
>>: Konvertieren von XHTML-CSS-Seiten in Druckerseiten
Als Baidu diese Anforderung erhielt, fand das Unt...
Inhaltsverzeichnis 1. Hintergrundwissen 1. Einfüh...
Inhaltsverzeichnis 1. Folgen Sie dem Assistenten,...
Inhaltsverzeichnis Grundlegende Verwendung von Pr...
Im späteren Stadium der Ausnutzung von SQL-Inject...
Inhaltsverzeichnis 1. Umweltvorbereitung 2. Ausfü...
Das Modul async_hooks ist eine experimentelle API...
Dieser Artikel beschreibt, wie lamp-php7.0 in ein...
Im Docker-Design führt ein Container nur eine Anw...
Flash-Dateiformate: .FLV und .SWF Für das Flash-Vi...
So verwenden Sie den Code im NetEase-Blog: Melden...
In diesem Artikel wird der spezifische JavaScript...
Wie unten dargestellt: LOCATE(Teilzeichenfolge,Ze...
Grundlagen Die Reihenfolge der Standortübereinsti...
Definieren eines Arrays in Bash Es gibt zwei Mögl...