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

Eine kurze Einführung in React

Inhaltsverzeichnis 1. CDN-Einführung 1.1 reagiere...

So zeigen Sie laufende Hintergrundprogramme in Linux an und beenden sie

Linux-Taskverwaltung - Ausführung und Beendigung ...

Verwenden Sie HTML und CSS, um Ihren eigenen warmen Mann „Dabai“ zu erstellen.

Das Endergebnis sieht so aus, ist es nicht süß … ...

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...

Vue implementiert Tab-Tab-Umschaltung

In diesem Artikelbeispiel wird der spezifische Co...

Eine kurze Diskussion über benutzerdefinierte VUE-Uni-App-Komponenten

1. Übergeordnete Komponenten können Daten über Re...

So deinstallieren Sie IIS7-Web- und FTP-Dienste in Win7 vollständig

Nachdem ich gestern die PHP-Entwicklungsumgebung ...

Analyse des Implementierungsprozesses für die Tomcat maxPostSize-Einstellung

1. Warum maxPostSize festlegen? Der Tomcat-Contai...