React kapselt die globale Bullet-Box-Methode

React kapselt die globale Bullet-Box-Methode

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

  • alertTitle Popup-Titel
  • Popup-Inhalt „alertTip“, benutzerdefinierter Stil
  • closeAlert gibt beim Schließen optionale Informationen zurück, je nach Bedarf.
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:
  • React verwendet die Antd-Formularzuweisung, um den Betrieb des Popup-Fensters zu ändern
  • React Native implementiert Beispielcode für Fortschrittsbalken-Popup

<<:  Tiefgreifendes Verständnis der logischen Architektur von MySQL

>>:  Konvertieren von XHTML-CSS-Seiten in Druckerseiten

Artikel empfehlen

js realisiert die Funktion zum Klicken zum Wechseln der Karte

In diesem Artikelbeispiel wird der spezifische Co...

MySQL-Datenbanktabelle und Datenbankpartitionierungsstrategie

Lassen Sie uns zunächst darüber sprechen, warum w...

Detaillierte Erklärung der regulären Ausdrücke von Nginx

Nginx (Engine x) ist ein leistungsstarker HTTP- u...

Detaillierte Erklärung gängiger Befehle im Docker-Repository

Einloggen Docker-Anmeldung Schließen Sie die Regi...

So fügen Sie Emoji-Ausdrücke in MySQL ein

Vorwort Als ich heute ein Feedback-Formular für e...

JavaScript zum Erzielen eines einfachen Karusselleffekts

Was ist ein Karussell? Karussell: In einem Modul ...

nuxt.js Konfiguration mehrerer Umgebungsvariablen

Inhaltsverzeichnis 1. Einleitung 2. Szenario 3. S...

So reduzieren Sie die Bildgröße mithilfe des mehrstufigen Docker-Builds

In diesem Artikel wird beschrieben, wie Sie die m...

Tutorial zur Installation von VMware Workstation 14 Pro unter Ubuntu 16.04

In diesem Artikel wird die spezifische Methode zu...

Beispiele für die Verwendung von HTML-Listen-Tags dl, ul, ol

Code kopieren Der Code lautet wie folgt: <!-- ...