【问题标题】:Can withStyles be used on the result of a function?withStyles 可以用于函数的结果吗?
【发布时间】:2018-11-05 02:06:13
【问题描述】:

我目前正在尝试对函数的结果应用额外的样式,该函数根据一组特定道具的存在返回两个组件之一,例如:

import React from 'react'
import { withStyles } from '@material-ui/core/styles'
import Avatar from '@material-ui/core/Avatar'
import AccountCircle from '@material-ui/icons/AccountCircle'

const DefaultImage = withStyles({
  root: {
    backgroundColor: 'rgba(255, 255, 255, 0.5)',
    width: '40px',
    height: '40px',
    borderRadius: '50%'
  }
})(AccountCircle)

export default function UserAvatar(props) {
  return props.userImage ? <Avatar src={props.userImage} /> : <DefaultImage />
}

但是,当我将 withStyles 应用于结果时,不会出现任何其他样式。我以正确的方式接近这个吗?

import React from 'react'
import UserAvatar from './avatar.js'
import { withStyles } from '@material-ui/core/styles'

const UserAvatarHeader = withStyles({
  root: {
    margin: '2vh',
    float: 'right'
  }
})(UserAvatar)

export default function PageHeader(props) {
  return (
...
      <UserAvatarHeader userImage={props.userImage} />
...
  )
}

【问题讨论】:

    标签: javascript css reactjs material-ui


    【解决方案1】:

    试试这个方法

    import React from 'react'
    import { withStyles } from '@material-ui/core/styles'
    import Avatar from '@material-ui/core/Avatar'
    import AccountCircle from '@material-ui/icons/AccountCircle'
    
    const styles = {
      default: {
        backgroundColor: 'rgba(255, 255, 255, 0.5)',
        width: '40px',
        height: '40px',
        borderRadius: '50%'
      }
    }
    
    function UserAvatar(props) {
      const { classes, userImage } = props;
      return userImage ? <Avatar src={userImage} /> : <AccountCircle className={classes.default} />
    }
    
    export default withStyles(styles)(UserAvatar)
    

    我从文档中找到了这个:https://material-ui.com/style/icons/

    如果您有任何其他问题,请告诉我

    【讨论】:

    • 感谢您的回复。但是,我试图在某些情况下使用 UserAvatar 的结果而无需额外的边距样式,并且只应用 addtl。其他人的边距样式(UserAvatarHeader)。看来您的解决方案会在每次呈现 UserAvatar 时应用样式。
    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2013-01-06
    相关资源
    最近更新 更多