【发布时间】:2018-02-05 02:08:09
【问题描述】:
我有一个组件需要从父级(使用 PropA)和 HOC(使用 PropB)注入
export interface PropsA extends PropsB {
propA: string;
}
class SomeComponent extends React.PureComponent<PropsA> {
render(){
return (
<div>
{this.props.propA}
{this.props.propB}
</div>
);
}
}
export default withPropsB(SomeComponent);
export interface PropsB {
propB: string;
}
这就是我们用 HOC 注入它的方式:
export const withPropsB = (Component: any) => {
class EnhancedWithProsB extends React.Component<PropsB> {
render(){
return <Component {...this.props}/>;
}
}
const mapStateToProps = (state: any) => ({
propB: "propB"
});
return connect(mapStateToProps)(EnhancedWithProsB);
};
客户这样使用:
class Wrapper extends React.Component {
render(){
return <SomeComponent propA="propA" />;
}
}
我收到错误消息,提示“'IntrinsicAttributes & IntrinsicClassAttributes, ComponentState>> & ...' 类型上不存在属性 'propA'。”
withPropsB 方法应该返回什么类型才能使这个错误消失?
【问题讨论】:
标签: reactjs typescript redux