Reactはグローバル箇条書きボックスメソッドをカプセル化します

Reactはグローバル箇条書きボックスメソッドをカプセル化します

この記事の例では、Reactカプセル化グローバルポップアップボックスの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。

ポップアップ効果図

ファイルレイアウト

インデックス

/* eslint を無効にする react/no-render-return-value */
React をインポートします。{ コンポーネント } を 'react' からインポートします。
'immutable' から { is, fromJS } をインポートします
'react-dom' から ReactDOM をインポートします。
'./alert.less' をインポートします

const close = require('../images/guanbi.png')
定数 line = require('../images/line.png')

定数デフォルト状態 = {
  アラートステータス: false、
  アラートヒント: null、
  アラートタイトル: '詳細',
  クローズアラート: () => {}
}

クラス Toptips は Component を拡張します {
  状態 = {
    ...デフォルト状態
  }

  //cssアニメーションコンポーネントがターゲットコンポーネントに設定されます FirstChild = props => {
    const childrenArray = React.Children.toArray(props.children)
    childrenArray[0]を返す || null
  }

  // ポップアップボックスを閉じる confirm = () => {
    const that = this
    console.log(それ)
    this.setState() は、
      {
        アラートステータス: false
      },
      () => {
        that.state.closeAlert()
      }
    )
  }

  オープン = データ => {
    const オプション = データ || {}
    オプション.alertStatus = true
    this.setState({
      ...デフォルト状態、
      ...オプション
    })
  }

  閉じる = () => {
    const that = this
    that.state.closeAlert()
    this.setState({
      ...デフォルト状態
    })
  }

  コンポーネントの更新 = (次のプロパティ、次の状態) => {
    戻る (
      !is(fromJS(this.props), fromJS(nextProps)) ||
      !is(fromJS(this.state), fromJS(nextState))
    )
  }

  与える() {
    const { alertStatus、alertTip、alertTitle } = this.state
    console.log(アラートヒント、アラートタイトル)
    戻る (
        <div
          クラス名="アラートコン"
          style={alertStatus ? {display: 'block' } : {display: 'none' }}
        >
          <div className="アラートコンテキスト">
            <div className="アラートコンテンツタイトル">{アラートタイトル}</div>
            <img className="alert-content-line" src={line} alt="line" />
            <div className="alert-content-detail">{アラートヒント}</div>
            <画像
              役割="プレゼンテーション"
              クリックすると{() => {
                確認()
              }}
              className="アラートを閉じる"
              src={閉じる}
              alt="閉じる"
            />
          </div>
        </div>
    )
  }
}

定数div = document.createElement('div')
定数プロパティ = {}
ドキュメント本体に子要素を追加します。

const Box = ReactDOM.render(React.createElement(Toptips, props), div)

デフォルトボックスをエクスポート

少ない

.アラート-コン{
  位置: 固定;
  上: 0;
  左: 0;
  幅: 100%;
  高さ: 100%;
  背景: rgba(255, 255, 255, 0.3);
  Zインデックス: 222;
}
.アラートコンテキスト{
  // 背景色: #fff;
  // 境界線の半径: 16px;
  位置: 相対的;
  // 高さ: 500px;
  高さ: 90%;
  幅: 750ピクセル;
  マージン: 40px 自動 0;
  背景: url(../images/alertBJ.png) 繰り返しなし 中央;
  背景サイズ: 100% 100%;
  .アラートを閉じる{
    幅: 30ピクセル;
    高さ: 30px;
    位置: 絶対;
    右: 30px;
    上: 30px;
  }
  .アラートコンテンツタイトル{
    幅: 100%;
    高さ: 80px;
    行の高さ: 80px;
    色: #fff;
    テキスト配置: 中央;
    フォントサイズ: 36px;
    フォントの太さ: 太字;
    // 背景: url(../images/line.png) no-repeat left bottom;
  }
  .アラートコンテンツ行{
    幅: 100%;
    高さ: 20px;
    上マージン: -44px;
    左マージン: -6px;
  }
  .アラート詳細リスト{
    幅: 102%;
    高さ: 100%;
    オーバーフロー-y: 自動;
    パディング: 20px 60px;
    .アラート詳細リストC{
      p{
        &:n番目の子(1){
          フォントサイズ: 14px;
          行の高さ: 20px;
          色: #FFFFFF;
          文字間隔: 1.4px;
        }
        &:n番目の子(2){
          行の高さ: 24px;
          フォントサイズ: 18px;
          色: #FFFFFF;
        }
      }
    }
  }
  .アラートコンテンツの詳細{
    // 高さ: 100%;
    高さ: calc(100% - 100px);
    /* オーバーフロー-y: 自動; */
    オーバーフロー: 非表示;
    幅: 98%;
    上マージン: -26px;
  }
  .アラート詳細-pdf{
    幅: 102%;
    高さ: 100%;
    オーバーフロー-y: 自動;
    パディング: 20px 60px;
    .アラート詳細ボタン{
      ディスプレイ: フレックス;
      flex-direction: 行;
      コンテンツの端揃え: flex-end;
      下マージン: 10px;
      p{
        色:#fff;
        行の高さ: 35px;
        フォントサイズ: 16px;
        右マージン: 20px;
      }
      {
        行の高さ: 35px;
        フォントサイズ: 16px;
        右マージン: 20px;
      }
    }
  }
.cameraWrap{
  幅: 100%;
  高さ: 102%;
  ボックスのサイズ: 境界線ボックス;
  パディング: 12px 4px 0 14px;
}
}

使用法

  • alertTitle ポップアップタイトル
  • alertTip ポップアップ コンテンツ、カスタム スタイル
  • closeAlert は閉じるときに情報を返しますが、これは必要に応じてオプションになります。
「./Toptips」からToptipsをインポートします
トップヒント.open({
      alertTitle: 「コメントの詳細」、
      アラートヒント: that.htms(val),
      クローズアラート: 関数 () {
        console.log("閉じました...");
      }
    });
  htms = val => {
    戻る (<div className="alert-detais-list">
      <div className="アラートの詳細リスト-C">
        <p>コメント内容:</p>
        <p>{val.fdタイトル}</p>
      </div>
      <div className="アラートの詳細リスト-C">
        <p>コメントの詳細:</p>
        <p>{val.fdタイトル}</p>
      </div>
      <div className="アラートの詳細リスト-C">
        <p>測定と結果:</p>
        <p>{val.fdContent}</p>
      </div>
      <div className="アラートの詳細リスト-C">
        <p>進捗状況の詳細:</p>
        <p></p>
      </div>
    </div>)
  }

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Reactはantdフォーム割り当てを使用してポップアップボックスの操作を変更します
  • React Native はプログレスバーポップアップのサンプルコードを実装します

<<:  MySQLの論理アーキテクチャに関する深い理解

>>:  XHTML CSS ページをプリンタ ページに変換する

推薦する

MySQLでよく使われるSQLとコマンドの入力からデータベースの削除、そして終了まで

目次開始と停止データベース関連の操作データベーステーブル関連の操作制約関連デフォルトの制約高度なデー...

Docker で Spring-boot プロジェクトをデプロイするためのサンプル コード

1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...

単一マシン上での Tomcat の複数インスタンスの実装

1. はじめにまず、1 台のマシンで複数のインスタンスを使用する理由という質問に答える必要があります...

さようなら Docker: 5 分で Containerd に移行する方法

Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...

Windows 64 ビット版の MySQL 8.0.15 インストール チュートリアル

まず公式サイトにアクセスしてダウンロードし、MySQLダウンロードをクリックします。 ダウンロードし...

MySQL ステートメントロックの実装の分析

概要: 2 つの MySQL SQL ステートメント ロックの分析次のSQL文にどのようなロックが追...

MySQL 5.7 の sql_mode のデフォルト値によって生じる落とし穴と解決策

通常のプロジェクト開発中に、MySQL バージョンが 5.6 から 5.7 にアップグレードされた場...

ネイティブjsはショッピングカートのロジックと機能を実装します

この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...

Docker を使用して nginx で tomcat クラスターを構築する方法 (画像とテキスト付き)

まず、Tomcatフォルダを作成します。Dockerの設定を容易にするために、ルートディレクトリに直...

ドラッグアンドドロップでVueユーザーインターフェースを生成する方法

目次序文1. 技術原理1.1 レイアウト1.2 コンポーネント1.3 ステータス1.4 イベント1....

VMwareがLinuxシステムをインストールして起動した後に黒い画面が表示される問題を解決する

1. 設置環境1. HUAWEI mate x CPU i5 82500u、8g メモリ、独立グラフ...

js における関数のネストとクロージャの詳細

目次1. 範囲2. 関数の戻り値3. 関数のネスト4. 終了5. クロージャの実用的応用1. 内部変...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

Linux でスレッドを作成するための pthread_create の具体的な使用法

pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...