Палитра пользовательского интерфейса материала не обновляется

Я новичок в React и Material UI, я пытаюсь добавить несколько пользовательских стилей к кнопкам MUI с помощью createMuiTheme.

Я следил за документами и в значительной степени скопировал пример, но он не имеет никакого эффекта, и в консоли не возникает ошибок.

Я уже некоторое время бьюсь об это головой и не вижу, в чем проблема, что мне не хватает?

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

const mytheme = createMuiTheme({
    palette: {
        primary: { main: '#1565C0'},
        secondary: { main: '#11cb5f' }, 
    },
});

export const PrimaryButton = (props) => {
    return (
        <ThemeProvider theme={mytheme}>
            <a href={props.buttonLink}>
                <Button
                    style={{ ...props.styles}}
                    onClick={props.handleClick}
                    variant='contained' color='primary' size='large'
                >
                    {props.buttonText}
                </Button>
            </a>
        </ThemeProvider>
    );
};

export const SecondaryButton = (props) => {
    return (
        <ThemeProvider theme={mytheme}>
            <Button
                style={{...props.styles }}
                value={props.value || ''}
                onClick={props.handleClick}
                variant='outlined' color='secondary' size='large'
            >
                {props.buttonText}
            </Button>
        </ThemeProvider>
    )
}

person Marts2390    schedule 17.12.2019    source источник
comment
Работает нормально, попробовал codeandbox.io/s/flamboyant-wu-b8kqg . Я изменил основной цвет и все работает   -  person kooskoos    schedule 17.12.2019
comment
Эй, спасибо, что настроили. Я вижу, что там работает. Проблема в том, что стили по умолчанию все еще применяются и применяются после того, как мои пользовательские стили переписывают их, и я не уверен, почему это происходит.   -  person Marts2390    schedule 17.12.2019
comment
Есть ли у вас предупреждения в консоли о нескольких экземплярах @material-ui/styles?   -  person Ryan Cogswell    schedule 17.12.2019
comment
Никаких консольных предупреждений, приведенный ниже ответ исправил это, мне нужно было обернуть все приложение в ThemeProvider и стилизовать глобально, а не для каждого компонента.   -  person Marts2390    schedule 17.12.2019


Ответы (1)


Это работает. Попробуйте это изменить:

variant='outlined'

by

variant='contained'
person Gaspar Teixeira    schedule 17.12.2019
comment
Эта опора присутствует в PrimaryButton. Я только что проверил, и стили предоставляются, однако они переписываются, но стили MUI. - person Marts2390; 17.12.2019
comment
Так что на самом деле я не слежу за тем, что вам нужно. Вы хотите изменить значение во всем приложении? Или просто в компоненте? - person Gaspar Teixeira; 17.12.2019
comment
Поэтому, когда я проверяю инструменты разработчика, я вижу, что мои стили применяются к ›MuiButton-containPrimary. Однако выше в иерархии применяются настройки MUI по умолчанию, которые перекрывают мои стили. Думаю, мне нужно применить их ко всему приложению, чтобы это исправить? - person Marts2390; 17.12.2019
comment
да. Загляните в этот ящик с кодами и дайте мне знать, поможет ли он вам. codeandbox.io/s/agitated-galois-lcryu - person Gaspar Teixeira; 17.12.2019
comment
Пожалуйста. Не забудьте выбрать свой ответ ... иначе люди будут пытаться вам ответить. - person Gaspar Teixeira; 17.12.2019