我很难找到有关此模式的一些文档。 它有名字吗?
TextBase
是样式化的组件。因此我可以将其扩展如下:
Text.H1 = withComponent('h1')
但是我也希望传递html属性。因此,功能组件。但是,当我扩展Text
组件时,道具被覆盖,导致所有组件都是h1的。
const Text = (props) => {
const { children, testid, ...rest } = props;
return <TextBase data-testid={testid} {...rest}>{children}</TextBase>
}
Text.defaultProps = {color: 'red'}
Text.H1 = Text
Text.H1.defaultProps = { as: 'h1'}
Text.H2 = Text
Text.H2.defaultProps = { as: 'h2'}
Text.H3 = Text
Text.H3.defaultProps = { as: 'h3'}
??
答案 0 :(得分:1)
尝试使用此方法绑定函数调用,或使用箭头函数,或使用bind手动绑定函数。我相信它会起作用。参考错误就是这一切