码迷,mamicode.com
首页 > 其他好文 > 详细

[React] Radium: Updating Button Styles via Props

时间:2016-04-18 06:35:05      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

In a CSS library like Bootstrap we can set a button‘s style to be "primary" or "secondary" by appending classes. For React components we want to be able to do this via props. Radium enables this by composing styles via an array. This mimicks the cascade of CSS.

 

Radiumn allows ‘style‘ attr accepts array. Inside array, the larger index style will overwrite the pervious index‘s style.

  <button style={[
    styles.base,
    type===‘primary‘ && styles.primary
  ]}>
    {children}
  </button>

So in the code, styles.primary will overwrite the styles.base:

const styles = {
  base: {
    backgroundColor: ‘#aaa‘,
    border: ‘none‘,
    borderRadius: 4,
    color: ‘#fff‘,
    padding: ‘5px 20px‘,
    ‘:hover‘: {
      backgroundColor: ‘#08f‘
    }
  },
  primary: {
    backgroundColor: ‘#07d‘
  }
}

 

We can pass a props to the component to tell when should apply styles.primary style:

const { render } = ReactDOM
const rootEl = document.getElementById(‘root‘)

const Button = Radium(({ children, kind }) => (
  <button style={[
    styles.base,
    kind === ‘primary‘ && styles.primary
  ]}>
    {children}
  </button>
))

const styles = {
  base: {
    backgroundColor: ‘#aaa‘,
    border: ‘none‘,
    borderRadius: 4,
    color: ‘#fff‘,
    padding: ‘5px 20px‘,
    ‘:hover‘: {
      backgroundColor: ‘#08f‘
    }
  },
  primary: {
    backgroundColor: ‘#07d‘
  }
}

render(
  <Button kind="primary">
       OK
  </Button>,
rootEl)

 

[React] Radium: Updating Button Styles via Props

标签:

原文地址:http://www.cnblogs.com/Answer1215/p/5402996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!