прямо сейчас у меня есть компонент высшего порядка, который позволяет мне выпить любой компонент, это:
- позволяет компоненту принимать
color
проп - , передаетКомпонент className с классом css цвета
- не передает цветовую опору компоненту
, это выглядит так:
// withColor.js
import React from 'react'
import styles from './withColor.css'
import cn from 'classnames'
const withColor = TargetComponent => {
const WrappedComponent = props => {
// color is something like "black" or "red" and has a matching css class
const { className, color, ...rest } = props
const enhancedClassName = cn(className, {
[styles[`Color-${color}`]]: color,
})
return <TargetComponent className={enhancedClassName} {...rest} />
}
return WrappedComponent
}
пример использования:
// box.js
import React from 'react'
import withColor from '../hocs/withColor'
const Box = props => <div data-box {...props} />
export default withColor(Box)
Могу ли я использовать вместо этого реагирующие хуки?как бы это выглядело?