Я использую Next.js, React, Styled JSX и Postcss, если это имеет значение. Мне нужно стилизовать импортированный компонент для конкретной страницы. Так как таблицы стилей создаются для определенного компонента во время рендеринга, я решил, что могу просто добавить пользовательские стили для компонента в ресурсы, специфичные для страницы, и передать их. Но я получаю следующую ошибку:
Expected a template literal or String literal as the child of the JSX Style tag (eg: <style jsx>{`some css`}</style>), but got MemberExpression
У меня есть два функциональных рендера в двух отдельных каталогах и файлах, один на страницу, а другой на компонент:
src/pages/mypage/
index.js
styles.css
myComponentStyles.css
src/components/MyComponent
index.js
styles.css
Помня, что ссылки на файл / каталог не отражаются в моей средепотому что это не проблема, вот мой код:
src / pages / mypage / index.js
import MyComponent from '../../components/MyComponent'
import styles from './styles.css'
import MyComponentStyles from './myComponentSyles'
const MyPage = () => {
return (
<div className="my-page-container">
<style jsx>{styles}</style>
<MyComponent styles={MyComponentStyles} />
</div>
)
}
export default MyPage
src / components / MyComponent / index.js
import styles from './styles.css'
const myComponent = props => {
return (
<>
<style jsx>{styles}</style>
<style jsx>{props.styles}</style>
<div className="my-component-main-container">MyComponent</div>
</>
)
}
export default MyComponent
Как разрешить MyComponent
получать таблицу стилей, созданную другим компонентом?