Несколько вложенных компонентов в стилизованных компонентах

Я довольно новичок в Styled Components (пришедший из SCSS), хотя в целом я понимаю его суть. Мне было интересно, есть ли способ консолидировать код ниже. Хотя это работает, это часто повторяется. Есть ли способ использовать несколько вложенных селекторов?

const StyledDocuments = styled(Documents)`
  > * > table {
    vertical-align: middle;
  }
  > * > table > tbody {
    vertical-align: middle;
  }
  > * > table > tbody > tr {
    vertical-align: middle;
  }
  > * > table > tbody > tr > td {
    vertical-align: middle;
  }
`;

Большое спасибо.

1 ответ

Вложенность напрямую переносится из SASS в стилизованные компоненты, и возможен любой уровень вложенности. Например:

const Section = styled.section`
  padding: 4em;
  > * > table {
    border: 1px solid black;
    border-collapse: collapse;
    width: 100%;

    > * > tr {
      text-align: center;
      height: 4rem;
      border: 1px solid red;

      &:first-child {
        color: blue;
      }

      td {
        vertical-align: middle;
      }
    }
  }
`;

Смотрите бегущий код https://codesandbox.io/s/jv0o5ykykv

В вашем конкретном случае мне интересно, почему вы должны вкладывать несколько vertical-align стили, когда они могут автоматически наследоваться детьми, когда вы применяете их к родителю table,

Для документов: https://www.styled-components.com/docs/faqs

Другие вопросы по тегам