Передача одного и того же реквизита нескольким стилизованным компонентам

У меня есть 3 компонента React, которым передается один и тот же реквизит isNewListingsHeader. Я использую Styled Components для стилей CSS. Мне интересно, есть ли более чистый способ передать эту опору в 3 разных стилизованных компонента SortBarWrapper, SortOptionsWrapper и SortOptionsWrapper, чтобы мне не приходилось каждый раз определять isNewListingsHeader.

// Styled Components
const SortBarWrapper = styled.div`
   position: relative;
   ${props => !props.isNewListingsHeader && `
     height: 100px;
  `}
`

const SortLineWrapper = styled.div`
   width: 100%;
   ${props => !props.isNewListingsHeader && `
     position: absolute;
     bottom: 0;
   `}
`

const SortOptionsWrapper = styled.div`
   box-sizing: border-box;
   ${props => !props.isNewListingsHeader && `
     padding-bottom: 24px;
     padding-top: 32px;
   `}
`


 render () {
   return (
     <SortBarWrapper isNewListingsHeader = {this.props.isNewListingsHeader}>
       <SortLineWrapper isNewListingsHeader = {this.props.isNewListingsHeader}>
         <SortOptionsWrapper isNewListingsHeader = {this.props.isNewListingsHeader}>
           // Display Sort Options
         </SortOptionsWrapper>
       </SortLineWrapper>
     </SortBarWrapper>
   )
 }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
321
2

Ответы 2

То, что вы делаете, не является неправильным, но я понимаю, что вы хотите высушить свой код. Я не собираюсь говорить, что такое «правильный» способ, потому что технически правильного пути нет, просто способы, которые вы предпочитаете делать на основе вашего стека (например, используете ли вы Redux или любое другое управление состоянием?).

Этот средний пост охватывает несколько методов глубокого вложения компонентов.

Изучите это и выберите то, что работает для вас. Но ради этого разговора - вы делаете это правильно и в стиле "React".

Большое спасибо. Это действительно интересно — я использовал метод recompose nest().

Michael 13.02.2019 18:45

Мы можем использовать контекст API. Создайте поставщика и потребителя. Оберните все компоненты внутри провайдера, Provider принимает свойство value, и данные в этом свойстве доступны для всех дочерних потребителей. И может использовать их внутри потребителя.

«Почему вы должны рассмотреть новый Context API в React? — «Глубокое погружение» Махеша Халдара https://link.medium.com/zrYj36RnhU

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