Как я могу импортировать пользовательские компоненты в стиле - PullRequest
0 голосов
/ 18 марта 2019

У меня есть Form.js файл в папке styled-ui.

Form.js

// input
export const FormControl = styled.input`
  border-radius: 3px;
  border: 1px solid #b2bec3;
  padding: 0 10px;
  height: 34px;
  font-size: 15px;
  outline: 0;
  width: 100%;
`

И я импортирую файл Form.js в styleled-ui / index.js следующим образом.

import * as Form from './Form'
import * as Section from './Section'

export default {
  ...Form,
  ...Section
}

Это мой файл conatiner, в который импортируются стилевые компоненты

import {
  FormControl
} from '@/styled-ui'

После этого Когда я использую это,

<FormControl></FormControl>

Я получил ошибку, '@/styled-ui' does not contain an export named 'FormControl'. Тем не менее, когда я использую, как это работает хорошо.

import styled from '@/styled-ui'
`<styled.FormControl></styled.FormControl>`

И я использую веб-пакет для разработки и производства

{
            test: /\.css$/,
            use: [
              require.resolve('style-loader'),
              {
                loader: require.resolve('css-loader'),
                options: {
                  importLoaders: 1,
                },
              },
              {
                loader: require.resolve('postcss-loader'),
                options: {
                  // Necessary for external CSS imports to work
                  // https://github.com/facebookincubator/create-react-app/issues/2677
                  ident: 'postcss',
                  plugins: () => [
                    require('postcss-flexbugs-fixes'),
                    autoprefixer({
                      browsers: [
                        '>1%',
                        'last 4 versions',
                        'Firefox ESR',
                        'not ie < 9', // React doesn't support IE8 anyway
                      ],
                      flexbox: 'no-2009',
                    }),
                  ],
                },
              },
            ],
          },

Теперь я так растерялся. подскажите пожалуйста как можно решить эту проблему?

1 Ответ

1 голос
/ 18 марта 2019
import * as Form from './Form'

...

export default {
  ...Form,
  ...Section
}

в вашем случае, то же самое, что и запись

import * as Form from './Form'

...

export default {
  FormControl: Form.FormControl,
  ...Section
}

Вот почему <styled.FormControl> работает нормально.

Что вы, вероятно, можете сделать в вашем файле index.js:что-то вроде

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