React Material Design Выбор и стилизация компонентов - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу оформить Select компонент из https://material-ui.com/api/select/#select, используя styled-components совместимость

Я пробовал что-то подобное:

const StyledForm = styled.form`
  display: flex;
  flex-wrap: wrap;
  color: #fff;
  paddingRight: 10px;
`
const StyledFormControl = styled(FormControl)`
  && {
    margin-left: 0;
    min-width: 120px;
  }
`
const StyledInput = styled(Input)`
  && {
    padding-top: 0;
    margin-top: 10px;
  }
`
const StyledMenuItem = styled(MenuItem)`
  && {
    font-size: 13px;
    font-weight: 600;
  }
`

const StyledInputLabel = styled(InputLabel)`
  && {
    width: 185px;
    color: #fff;
  }
`
// THIS ONE NOT WORKING 
const StyledSelect = styled(Select)`
  & .root {
    height: 100px
  }
`

...

render() {
    return (
      <StyledForm autoComplete="off">
        <StyledFormControl>
          <StyledInputLabel
            htmlFor="interval-select"
            focused={false}
          >
              Predictions time interval:
          </StyledInputLabel>
          <StyledSelect
            value={this.state.interval}
            onChange={this.handleChange}
            input={
              <StyledInput name="interval" disableUnderline={true}  id="interval-select" />
            }
          >
            <StyledMenuItem value={1}>Last week</StyledMenuItem>
            <StyledMenuItem value={2}>Last 2 weeks</StyledMenuItem>
          </StyledSelect>
        </StyledFormControl>
      </StyledForm>
    )
  }

enter image description here

1 Ответ

0 голосов
/ 14 сентября 2018

Один из способов - использовать этот шаблон:

const StyledSelect = styled(Select).attrs({ 
  classes: { root: 'root'} 
})` 
 .root  {
   color: #fff;
 }
`
...