2016-06-15 16 views
5

我正在嘗試將Radium和Material-ui結合使用。當我嘗試在單個Material-ui組件上應用多個樣式時,不應用樣式。因此,舉例來說,這樣的事情不會產生加造型:使用Material-ui和Radium使用多種樣式的問題

<MenuItem 
    style={[styles.styleOne, styles.styleTwo]} 
    > 

當然,如果我這樣做:

<MenuItem 
    style={Object.assign({}, styles.styleOne, styles.styleTwo)} 
    > 

它的工作原理。有沒有辦法繞過它,或者這是使用Radium將Material-ui組件的樣式組合起來的唯一方法?另外,Radium設置正確,因爲在DIV元素上應用了一些樣式,或者正常工作。 另外,我對任何關於樣式化使用Material-ui庫的React項目的建議都是開放的。謝謝!

回答

-1

看看這個小提琴:https://jsfiddle.net/Lxh5x2qr/

它使用JSX傳播(...)運營商,這是一個有點更好的語法:

styleOne: { 
    background: 'blue', 
    color: 'red' 
}, 

styleTwo: { 
    background: 'green' 
}, 

... style={{...this.styleOne, ...this.styleTwo}} ... 

請注意對象的順序做的事情,就像在Object.assign

我們不應該忘記,MenuItem不是一個DOM元素,所以當我們運用style它,material-ui操縱它把它應用到底層元素之前,大概這就是爲什麼使用數組不工作的原因。

+1

此答案不包括相關的Radium信息。我有同樣的問題,並沒有使用Material-UI:使用數組設置樣式不起作用。 –