首页 > 解决方案 > 无法在主页中使用自定义组件 - 打字稿错误

问题描述

我正在尝试制作一个自定义警报组件:

type Severity = "error" | "success" | "info" | "warning" | undefined;

export default function CustomAlert(severity: Severity, text: string){
    return(
    <Alert style={{width:'50%'}} severity={severity}> {text}</Alert>)
}

但我无法在我的主页功能中使用它:

  function StatusMessage(){
        if (errorMessage.includes(`Couldn't find user`)){
          return (
            <div>
            <CustomAlert severity='error' text='User Not Found'></CustomAlert>
            </div>
              )
  }

自定义警报给了我这个错误:

Type '{ severity: string; text: string; }' is not assignable to type '(IntrinsicAttributes & "success") | (IntrinsicAttributes & "info") | (IntrinsicAttributes & "warning") | (IntrinsicAttributes & "error")'.
  Type '{ severity: string; text: string; }' is not assignable to type '"error"'.ts(2322)

标签: javascriptreactjstypescriptmaterial-uireact-component

解决方案


功能组件接收一个参数:props. 您可以使用整个对象或对其进行解构,但您不能传递多个。

function CustomAlert({severity: Severity, text: string})
function CustomAlert(props: {severity: Severity, text: string})

推荐阅读