代码之家  ›  专栏  ›  技术社区  ›  GorvGoyl

如果没有使用Typescript传递给NextJS中的函数组件,如何设置props的默认值

  •  0
  • GorvGoyl  · 技术社区  · 5 年前

    这是组件:

    const defaultDesc = "welcome to homepage";
    
        export default function Header(Props: {
           title:string,
          desc?:string
        }): JSX.Element {
        
        }
    

    desc 在里面 <Header> 那我想把 defaultDesc 然后设置为 默认描述
    但是,有没有其他有效的方法,以避免多次检查,以防通过许多道具。

          <Header
            title="Homepage"
          />
    
    0 回复  |  直到 5 年前
        1
  •  1
  •   DevLoverUmar    5 年前

    您可以定义一个接口,并使用默认值来分解Props,以防Props没有作为可选参数传递给组件

    const defaultDesc = "welcome to homepage";
    
    interface  HeaderProps{
           title:string,
          desc?:string
    }
    
    export default function Header(Props: HeaderProps): JSX.Element {
        
    const { title, desc= defaultDesc } = Props;   // you can use let, however const is recommended
    
    
    }
    

    Reference

        2
  •  0
  •   109149    5 年前

    interface / type 让他们更具可读性。

    const defaultDesc = "welcome to homepage";
    
    interface Props {
        title: string,
        desc?: string,
    }
    
    export default function Header({
        title,
        desc=defaultDesc // this is what you are looking for
    }: Props): JSX.Element {
    
        // rest of the logic
        // ...
    }