React 手書きタブ切り替え問題

React 手書きタブ切り替え問題

ここに画像の説明を挿入

親ファイル

React をインポートし、{useState} を 'react' から取得します。
// './Module1' から Module1 をインポートします。
// './Module2' から Module2 をインポートします。
// './Module3' から Module3 をインポートします。
// './Module4' から Module4 をインポートします。
'@/components/Task/Tree/Common/component/TabsContent/ListContent/HeadTabs' から HeaderTtabs、{ tagType } をインポートします。
'lodash' から {divide} をインポートします。

デフォルト関数をエクスポートする(プロパティ:任意){

  const tabsList: タグタイプ[] = [
    { 名前: 'xxx 状況' },
    { 名前: 'Cultivate xxxxx'、無効: false }、
    { 名前: 'xxxx を閉じる'、無効: false }、
    { 名前: '科xxxx', 無効: false },
    { 名前: '人xxxx', 無効: false },
  ];
  const [checkedTag, setCheckedTag] = useState(tabsList[0])
  戻り値 (<div>
    <HeaderTtabs tabsList={tabsList} checkedTag={checkedTag} setCheckedMenu={(tab) => setCheckedTag(tab)} />
    <div クラス名 = {`pt5 px20 pb20`}>
    {checkedTag.name === tabsList[0].name && <div>11</div>}
      {checkedTag.name === tabsList[1].name && <div>22</div>}
      {checkedTag.name === tabsList[2].name && <div>33</div>}
      {checkedTag.name === tabsList[3].name && <div>44</div>}
      {checkedTag.name === tabsList[4].name && <div>55</div>}
      {/* {checkedTag.name === tabsList[0].name && <Module1 />}
      {checkedTag.name === tabsList[1].name && <Module2 />}
      {checkedTag.name === tabsList[2].name && <Module3 />}
      {checkedTag.name === tabsList[3].name && <Module4 />} */
    </div>
  </div>);
}

サブファイル

'./index.scss' からスタイルをインポートします。
'react' から React をインポートします。
'antd' から { message } をインポートします。

// タグタイプエクスポートタイプtagType = {
  name: 文字列、// タグ名、一意 disabled?: ブール値 // 無効にするかどうか }

/**
 * サブページタブバー * @param props
 */
デフォルト関数をエクスポートします(props: {
  tabsList: tagType[], // タグリスト selectedTag: tagType, // 現在選択されているタグ setCheckedMenu: (menu: tagType) => void // タグクリックコールバック }) {
  const {tabsList、checkedTag、setCheckedMenu} = プロパティ
  const setCheck = (メニュー: タグタイプ) => {
    メニューが無効の場合
      message.warning('機能はまだ利用できません');
      戻る
    }
    setCheckedMenu(メニュー)
  }
  戻り値 (<div className={`${style.tag_area} ${style.epidemic_area}`}>
    {
      tabsList.map((アイテム) => (
        <div className={`${style.tag} ${checkedTag.name === item.name ? style.checked : ''} ${style.epidemic}`} key={item.name} onClick={() => setCheck(item)}>
          {アイテム名}
        </div>
      ))
    }
  </div>)
}

サブファイルタブスタイル:

ここに画像の説明を挿入

.タグエリア{
  ディスプレイ: フレックス;
  アイテムの位置を中央揃えにします。
  コンテンツの中央揃え: 中央;
  上マージン: -20px;
  背景色: #fff;
  下マージン: 20px;
  @media 画面のみ (最大幅: 768px) {
    & {
      上マージン: 10px;
    }
  }
}

.タグ {
  // フレックス: 1;
  //マージン: 0 15px;
  最小幅: 130px;
  パディング: 10px;
  ディスプレイ: フレックス;
  アイテムの位置を中央揃えにします。
  コンテンツの中央揃え: 中央;
  背景色: #fff;
  高さ: 50px;
  色: #333;
  カーソル: ポインタ;
  遷移: すべて .3s;
  // ボックスシャドウ: 5px 3px 4px #999;
  フォントサイズ: 18px;
  // 境界線の半径: 10px;
  境界線の半径: 6px 6px 0px 0px;
  @media 画面のみ (最大幅: 768px) {
    & {
      フォントサイズ: 14px;
      マージン: 0 5px;
      最小高さ: 30px;
      テキスト配置: 中央;
      パディング: 5px;
    }
  }

  &.チェック済み{
    色: #fff;
    背景色: #1E9FFF;
  }
  &:ホバー{
    色: #fff;
    背景色: #1E9FFF;
  }
}


// 浙江省の疫病予防のための 4 つのタブ スタイル。epidemic_area{
  コンテンツの配置: 左;
  マージン: 10px 20px;
  パディング:10px;
}

。伝染病{
  マージン:0 10px;
  幅: 200ピクセル;
  背景: rgba(20, 146, 255, 0.1);
  境界線: 1px 実線 #1492FF;
  ボックスのサイズ: 境界線ボックス;
  境界線の半径: 4px;
  高さ: 44px;
}

Reactの手書きタブ切り替えに関する記事はこれで終わりです。Reactのタブ切り替えに関するより関連性の高いコンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React antd タブの切り替えによりサブコンポーネントが繰り返し更新される
  • ReactはTaobaoのタブ中央切り替え効果に似たサンプルコードを実装します
  • タブコンポーネントを動的に切り替えるReactネイティブメソッド
  • React コンポーネントでイベントパラメータを渡してタブ切り替えを実装するためのサンプルコード
  • ReactJS を使用して、タブページの切り替え、メニューバーの切り替え、アコーディオンの切り替え、プログレスバーの効果を実装します。

<<:  gbk utf8 GBK と UTF-8 ウェブページエンコーディングを正しく理解して使用する方法

>>:  デザイン理論: テキストの読みやすさと可読性

推薦する

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...

JavaScriptプロトタイプチェーン図のまとめと実践

目次プロトタイプチェーンプロトタイプチェーンに基づいてシンプルなJQueryライブラリを実装すること...

Vue ページ スタック マネージャーの詳細

目次2. 試した方法2.1 キープアライブ2.2 ネストされたルートを持つ CSS 3. 機能説明4...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

Baidu Maps を Web ページに埋め込み、Baidu Maps API を使用してマップをカスタマイズする詳細な手順

ウェブページにBaiduマップを挿入するBaidu Maps を自分の Web ページに追加したい場...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

ハイパーリンクのWebデザイン原則

<br />関連記事: Web コンテンツ ページ作成のための 9 つの実用的なヒント、...

カレンダー効果を実現するJavaScript

この記事では、カレンダー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

MySQL の暗号化と復号化の例

MySQL の暗号化と復号化の例データの暗号化と復号化はセキュリティ分野で非常に重要です。プログラマ...

Dockerコンテナは定期的にデータベースをバックアップし、指定されたメールボックスに送信します(設計アイデア)

目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....

フロントエンドJavaScript ES6の詳細について

目次1. はじめに1.1 Babel トランスコーダ1.2 ポリフィル2. let と const ...

CSS と Bootstrap アイコンを使用して、上下にジャンプするインジケーター矢印のアニメーション効果を作成します。

ページが非常に長い場合は、下にさらにコンテンツがあることをユーザーに知らせるために矢印が必要になるこ...

MySQL マスタースレーブ同期、トランザクションロールバックの実装原理

ビンログBinLog は、データベース テーブル構造の変更 (テーブルの作成、変更など) とテーブル...

MySQL 10進数符号なし更新負数を0に変換

今日、インターフェースの同時実行の問題を検証したところ、これまでredisで解決していた同時実行のプ...