カスタムクラスコンポーネントのスタイルでテーマを使用する方法

ジロスコープ

クラスベースの自分のコンポーネントの一部でテーマを使用したいと思います。何も動作させることができません。ドキュメントのすべての例は機能コンポーネント用です。基本的にテーマは定義されており、それを使用して独自のコンポーネントのスタイルを設定したいので、繰り返しを避け、より高いレベルでコードを変更すると、どこでも変更されます。

私のApp.js

import { ThemeProvider } from '@material-ui/styles';
import { createMuiTheme } from '@material-ui/core/styles';

const theme = createMuiTheme({
    palette: {
        primary: {
            light: '#757ce8',
            main: '#3f50b5',
            dark: '#002884',
            contrastText: '#fff',
          },
    },
    overrides: {
        MuiOutlinedInput: {
            disabled: true,
            input: {
                color: 'red'
            }
        }
    }
});

export default class App extends React.Component {
    render() {
        return (
            <ThemeProvider theme={theme}>
                <Nav />
            </ThemeProvider>
        );
    }
}

私の問題ファイル、Nav.js

import React from 'react';
import SearchBar from './SearchBar';
import { makeStyles } from '@material-ui/styles';

const styles = makeStyles(theme => ({
    root: {
        background: theme.background,
    },
  }));

class Nav extends React.Component {
    render() {
        const classes = styles();
        return(
            <div className={classes.root}>
                <SearchBar />
            </div>
        )
    }
}

export default Nav;
ライアン・コグズウェル

makeStylesクラスコンポーネントでは使用できませんmakeStyles関数コンポーネントでのみ使用できるカスタムフックを返します。クラスコンポーネントの場合、withStylesを使用して同じ機能をすべて活用できますwithStylesコンポーネントをラップし、classes小道具を注入します

以下は、質問のコードに基づく実用的な例です。

import React from "react";

import { withStyles } from "@material-ui/core/styles";

class SearchBar extends React.Component {
  render() {
    return <div>My Search Bar</div>;
  }
}

const styles = theme => ({
  root: {
    backgroundColor: theme.palette.primary.main,
    color: theme.palette.primary.contrastText
  }
});

class Nav extends React.Component {
  render() {
    return (
      <div className={this.props.classes.root}>
        <SearchBar />
      </div>
    );
  }
}
export default withStyles(styles)(Nav);

withStylesの例を編集する

関連する回答:

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムマテリアルUIコンポーネントのreactjs(16.13.0)コードで適切なリダイレクトを実行する方法は?

分類Dev

JShellコンソールのIntelliJでカスタムクラスをインポートする方法

分類Dev

spaCyパイプラインでカスタムコンポーネントをベンチマークする最良の方法は何ですか?

分類Dev

角度コンポーネントでカスタムTypeScriptクラスを使用する方法がわからない

分類Dev

スタイル付きコンポーネントでマテリアルシステムを使用するためのより良い方法

分類Dev

反応スタイルのコンポーネントでマテリアルカラーを使用するにはどうすればよいですか?

分類Dev

反応コンポーネント全体でカスタムAPIクライアントを使用するための慣用的な方法は何ですか?

分類Dev

Angular9でカスタムテキストボックスコンポーネントを作成する方法

分類Dev

ZKでコンポーネントラベルをカスタマイズする方法

分類Dev

WordPressのコントロールパネルでテキストをカスタマイズする方法

分類Dev

tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

分類Dev

カスタムフックを使用してReactコンポーネントをテストする方法

分類Dev

React MaterialUIのタブコンポーネントのテキストスタイルをカスタマイズする方法

分類Dev

React MaterialUIのタブコンポーネントのテキストスタイルをカスタマイズする方法

分類Dev

同じコンポーネントでカスタムコンポーネントを複数回使用する方法

分類Dev

LitElement:小さなWebコンポーネント内で多くのカスタムスタイルルールといくつかの動的ルールを作成する場合のベストプラクティス(またはベストパフォーマンス)?

分類Dev

WCFコンテキスト外でPerWcfSessionライフスタイルコンポーネントを使用する

分類Dev

redux形式でカスタムコンポーネントを使用する方法は?

分類Dev

jqueryをwebpackのカスタム要素に埋め込み、webコンポーネントでアクセスする方法。マテリアライズを使用しています

分類Dev

Aframeカスタムコンポーネント、スキーマのカスタムプロパティでエラーが発生する

分類Dev

Angularのコンストラクターで@Injectテキストを使用してコンポーネントをテストする方法

分類Dev

Angularのカスタムコンポーネントコンテンツにスタイルを適用するにはどうすればよいですか?

分類Dev

Laravel 4:AuthコンポーネントにusersテーブルのカスタムIDを使用させる方法

分類Dev

スマートテーブルコンポーネントの角度のカスタムアイコン

分類Dev

角度のあるマテリアルコンポーネントのカスタムセレクター名

分類Dev

反応スタイルのコンポーネントでカスタムアイコンを使用するにはどうすればよいですか?

分類Dev

カスタムスタイルをantdレートコンポーネントに設定する方法

分類Dev

何も壊さずにマテリアルコンポーネントにカスタムスタイルを追加する方法

分類Dev

ReactNativeのスタイル付きコンポーネントカスタムコンポーネントにスタイルを追加する

Related 関連記事

  1. 1

    カスタムマテリアルUIコンポーネントのreactjs(16.13.0)コードで適切なリダイレクトを実行する方法は?

  2. 2

    JShellコンソールのIntelliJでカスタムクラスをインポートする方法

  3. 3

    spaCyパイプラインでカスタムコンポーネントをベンチマークする最良の方法は何ですか?

  4. 4

    角度コンポーネントでカスタムTypeScriptクラスを使用する方法がわからない

  5. 5

    スタイル付きコンポーネントでマテリアルシステムを使用するためのより良い方法

  6. 6

    反応スタイルのコンポーネントでマテリアルカラーを使用するにはどうすればよいですか?

  7. 7

    反応コンポーネント全体でカスタムAPIクライアントを使用するための慣用的な方法は何ですか?

  8. 8

    Angular9でカスタムテキストボックスコンポーネントを作成する方法

  9. 9

    ZKでコンポーネントラベルをカスタマイズする方法

  10. 10

    WordPressのコントロールパネルでテキストをカスタマイズする方法

  11. 11

    tornadofxでカスタマイズされたUIコンポーネントを作成するためのベストプラクティスは何ですか?

  12. 12

    カスタムフックを使用してReactコンポーネントをテストする方法

  13. 13

    React MaterialUIのタブコンポーネントのテキストスタイルをカスタマイズする方法

  14. 14

    React MaterialUIのタブコンポーネントのテキストスタイルをカスタマイズする方法

  15. 15

    同じコンポーネントでカスタムコンポーネントを複数回使用する方法

  16. 16

    LitElement:小さなWebコンポーネント内で多くのカスタムスタイルルールといくつかの動的ルールを作成する場合のベストプラクティス(またはベストパフォーマンス)?

  17. 17

    WCFコンテキスト外でPerWcfSessionライフスタイルコンポーネントを使用する

  18. 18

    redux形式でカスタムコンポーネントを使用する方法は?

  19. 19

    jqueryをwebpackのカスタム要素に埋め込み、webコンポーネントでアクセスする方法。マテリアライズを使用しています

  20. 20

    Aframeカスタムコンポーネント、スキーマのカスタムプロパティでエラーが発生する

  21. 21

    Angularのコンストラクターで@Injectテキストを使用してコンポーネントをテストする方法

  22. 22

    Angularのカスタムコンポーネントコンテンツにスタイルを適用するにはどうすればよいですか?

  23. 23

    Laravel 4:AuthコンポーネントにusersテーブルのカスタムIDを使用させる方法

  24. 24

    スマートテーブルコンポーネントの角度のカスタムアイコン

  25. 25

    角度のあるマテリアルコンポーネントのカスタムセレクター名

  26. 26

    反応スタイルのコンポーネントでカスタムアイコンを使用するにはどうすればよいですか?

  27. 27

    カスタムスタイルをantdレートコンポーネントに設定する方法

  28. 28

    何も壊さずにマテリアルコンポーネントにカスタムスタイルを追加する方法

  29. 29

    ReactNativeのスタイル付きコンポーネントカスタムコンポーネントにスタイルを追加する

ホットタグ

アーカイブ