当我将多个HoC应用于一个组件时,我的应用程序将HoC用作其模态,并使用withStyles对其样式进行设置,但是第一个HoC的类属性将传递给该组件的下一个。
HoC1示例:
const styles = themes => ({
HoCOneStyle: {
margin: 'auto'
}
})
const withHoCOne = (WrappedComponent) => {
class HoCOne extends React.Component {
<HoC Stuff className={classes.HoCOneStyle} />
<WrappedComponent
{...this.props}
/>
}
return withStyles(styles, {withTheme: true})(HoCOne);
}
export default withHoCOne;
示例HoC2:
const styles = themes => ({
HoCTwoStyle: {
margin: 'auto'
}
})
const withHoCTwo = (WrappedComponent) => {
class HoCTwo extends React.Component {
<HoC Stuff className={classes.HoCTwoStyle} />
<WrappedComponent
{...this.props}
/>
}
return withStyles(styles, {withTheme: true})(HoCTwo);
}
export default withHoCTwo;
示例组件:
class DemoComponent extends React.Component {
render() {
return (
<Component Stuff />
)
}
}
export default compose(
withHoCOne,
withHoCTwo
)(DemoComponent)
如果运行此代码,则会在控制台中引发错误,提示:
警告:Material-UI:提供给classes属性的键'HoCOneStyle'在HoCTwo中未实现。您只能覆盖以下之一:HoCTwoStyle。
如何避免引发此错误?它实际上并没有停止任何工作,我只是不想在控制台中出现错误。
收到一只叮咚
相关分类