Настройка импортированного стилевого компонента - PullRequest
1 голос
/ 19 июня 2019

У меня есть компонент Icon, который я импортирую на страницу контактов. Я хочу, чтобы компонент Icon имел уникальные стили только для этой страницы. Я также использую Styled-Components.

Таким образом, я подумал, что расширю компонент Icon после его импорта:

import { Icon } from 'Elements'

const ContactIcon = styled(Icon)`
   // Unique CSS Styles
`

<ContactIcon glyph={Email} screen="Email" />

Проблема в том, что компонент Icon не регистрируется - как мы видим, если мы посмотрим на HTML, который получает вывод:

<span class="ContactForm__ContactIcon-eDVBAa fAJSOh"></span>

Если, однако, я использую оригинальный Icon Компонент, тогда все работает. Т.е., это работает:

<Icon glyph={Email} screen="Email" />

А вот HTML, который генерирует компонент <Icon>:

<span class="Icon__IconLink-hOjoyw ewcGUr"><span class="Icon__ScreenReader-cKVXXE lfVDCI">Email</span><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"></path></svg></span>

В качестве дополнительной справочной информации вот оригинальный компонент Icon, который я импортирую:

import React from 'react'
import styled from 'styled-components'


const ScreenReader = styled.span`
  // CSS Styles
`

const IconLink = styled.a`
  // CSS Styles
`
export const Icon = props => (
  <IconLink href={props.goTo} {...props}>
    <ScreenReader>{props.screen}</ScreenReader>
    <props.glyph />
  </IconLink>
)

Я должен также добавить, что иконки предоставляются react-icons. Вот к чему относится glyph опора.

Итак, мне интересно - почему это не сработает, когда я использую Styled Components для придания уникального стиля импортированному компоненту React Icon?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...