Нет таблицы стилей, сгенерированной styleled-компонентами в nwb повторно используемом компоненте

Я построил реактивный компонент многократного использования через nwb new react-component fade-preloader называется FadePreloader который использует styled-components, он опубликован на npm, так что я могу использовать его в других проектах, но когда он импортируется как модуль, его стили никогда не добавляются в DOM. Ниже приведены дополнительные сведения о компоненте nwb.

папка src:

src/
  FadePreloader.js
  FadePreloader.Styled.js
  index.js

FadePreloader.js:

import React, {Component} from "react"

class FadePreloader extends Component {
  // logic code
}

export default FadePreloader

FadePreloader.Styled.js:

import styled from "styled-components"
import FadePreloader from "./FadePreloader"

const FadePreloader_Styled = styled(FadePreloader)`
  // css here
`

export default FadePreloader_Styled

index.js:

// just import the styled-componet and re-export it
import FadePreloader from "./FadePreloader.Styled"

export default FadePreloader

У меня есть конфигурация по умолчанию в package.json, предоставленной nwb: введите описание изображения здесь

FadePreloader опубликован на npm, поэтому я добавил его в другой проект (через yarn add fade-preloader) и используйте его так:

App.jsx на другом проекте:

// lots of imports here
import FadePreloader from "fade-preloader"

class App extends Component {
  render() {
    return(
      <div>
        <FadePreloader />
      </div>
    )
  }
}

export default App

Компонент FadePreloader отображается в DOM, а его атрибут class имеет className, сгенерированный styleled-компонентами, как предполагается, но таблица стилей никогда не добавляется в DOM, нет <style> элемент присутствует, вызывая отображение стиля FadePreloader. В чем дело?

1 ответ

Я нашел решение, исходящее из официального спектрального канала styled-компонентов, смотрите здесь.

Что я должен был сделать, это следовать этому, что в основном говорит о том, что зависимость от styleled-компонент должна быть перемещена из зависимостей в devDependencies и peerDependencies в package.json. Я не уверен, что причина, но, кажется, чтобы избежать какой-то неожиданной причины, которая создается дублированной прямой зависимостью стилевых компонентов.

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