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 ウェブページエンコーディングを正しく理解して使用する方法

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

推薦する

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

RoughViz を使用して Vue.js でスケッチされたチャートを視覚化する方法

導入チャートは、データ セットを読みやすくし、その各部分を区別しやすくするために使用されるデータのグ...

Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

波効果を作成するための CSS のトリック

純粋な CSS を使用して波の効果を実現することは、常に非常に困難でした。 波形曲線を実現するにはベ...

Node.js パッケージ マネージャー npm の具体的な使用方法

目次目的npm init および package.json ファイルモジュールのインストールと管理モ...

カルーセルの制作方法を実現するjs

この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...

CentOS 7 パスワードを忘れた場合の解決プロセス図

必要Windows システムでも Linux システムでも、さまざまな理由でパスワードを忘れてしまう...

JavaScriptでシンプルなスクロールウィンドウを実装する

この記事では、スクロールウィンドウを実装するためのJavaScriptの具体的なコードを参考までに紹...

JavaScript は、シンプルな虫眼鏡の最も完全なコード分析を実装します (ES5)

この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介...

WeChatアプレットが計算機機能を実装

WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...

HTML TextArea でのフォーマット保存の問題の解決方法

textarea の形式は保存時にデータベースに保存できますが、表示時には /n と相互に変換できな...

UTF-8 および GB2312 ウェブエンコーディング

最近、多くの学生から Web ページのエンコーディングについて質問を受けています。gb2312 と ...

JavaScript ベースのパスワード ボックス検証情報の実装

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...