2016-08-17 7 views
3

Я хочу передать массив стилей компоненту React, используя модули postcss-loader и css. Мой webpack.config.file для компиляции файлов CSS выглядит следующим образом:Массив массива переходов для ответа на компонент

loaders: [ 
    'style-loader', 
    'css-loader?modules&importLoaders=1&localIdentName[name]__[local]___[hash:base64:5]', 
    'postcss-loader' 
], 

Мой Реагировать компонент файл выглядит следующим образом:

import styles from './cssFile.css'; 
class Component extends React.Component{ 
    render(){ 
     return(
      <div className={[styles.spinner, styles.spinner_2]}></div> 
     ) 
    } 
} 

Всякий раз, когда я прохожу только один стиль Classname он загружает его правильно, но когда Я передаю массив, который не разрешает ни один из них. Вместо этого он объединяет его с запятой в имени класса компиляции.

Как передать несколько стилей элементу?

+0

Это может быть только код, который вы вставили в формате SO, но синтаксис вашего класса недействителен, вам необходимо определить метод визуализации и вернуть элемент React. Помимо этого @ ori-drori верно, говоря, что className должен быть строкой. – riscarrott

ответ

3

РЕАКТ имя класса ожидает строку имен классов, а не массив:

import styles from './cssFile.css'; 
class Component extends React.Component{ 
    <div className={ [styles.spinner, styles.spinner_2].join(' ') }></div> 
} 
2

Вы можете использовать classnames для этого. Например:

import styles from './cssFile.css'; 
import classNames from 'classnames'; 

class Component extends React.Component { 
    render() { 
    return <div className={classNames(styles.spinner, styles.spinner_2)}></div> 
    } 
} 

Из документации:

имен классов

Функции принимает имен классов любого количества аргументов, которые могут представлять собой строку или объект. Если значение ключа ложно, оно не будет равно , включенному в выход.

 Смежные вопросы

  • Нет связанных вопросов^_^