React + Typescript + antd 按钮组件type属性延申属性问题

渲染函数里,我使用了antd UI的Button组件
<Button size='middle' {...this.getNavStandProps(1)}>领取</Button>

我想使用getNavStandProps方法来返回扩展Button属性className与type

getNavStandProps(navId : number) {
    const { active } =this.props;
    if(navId ===active) {
        return {
            type:'primary'
        }
    }else {
        return {
            className:'_el-btn-disabled'
        }
    }
}

在build时报错
Types of property 'type' are incompatible.

  Type 'string' is not assignable to type '"primary" | "link" | "ghost" | "danger" | "default" | "dashed" | undefined'. 
  

如返回className就不会报错,不知道什么原因

阅读 5.6k
1 个回答

_SC6H[PJ3]`]}LA%YUNIN9N.png

改为下面这种即可

typeButtonProps\={

type?: "primary"|"link"|"ghost"|"danger"|"default"|"dashed"|undefined,

  className?: string

}

  

constMyButton\=()\=>{

const getNavStandProps \=(navId:number):ButtonProps\=>{

const{ active }\=this.props;

if(navId \===active){

return{

type:'primary'

}

}else{

return{

              className:'\_el-btn-disabled'

}

}

}

  

return<Button size\='middle'{...getNavStandProps(1)}>领取</Button\>

}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题