Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
403 views
in Technique[技术] by (71.8m points)

react的hook里设置了默认值会报错

我用react+ts写一个小demo
发现父组件给子组件传值的时候,设置的默认的props,还是会报错,有谁遇到过吗?
父组件

<MultiCheck columns={2}/>
   

子组件

type Props = {
  columns?: number,
}

const MultiCheck: React.FunctionComponent<Props> = (props): JSX.Element => {
  const {
 
    columns,

  } = props;
    
    for (let i =0;i<columns;i++){
     这里读取columns会报错,TS2532: Object is possibly 'undefined'.    
    }



  return <div className='MultiCheck'>
 
  </div>
}
MultiCheck.defaultProps={
  columns:1,

};


export default MultiCheck;

for里面报错,我知道可能是column未定义,但是我下面不是设置了默认column是1了吗?这种情况怎么解决??


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

你类型上声明了 columns 为可选项,即:columns?: number,所以ts就是会报警,说这个字段可能为 undefined

至于你利用 react 的api 设置的默认值,ts不认识的。

所以你的case里,既然有默认值,那么声明类型时,就别加 ? 了,因为他已经不是可选项,而且肯定有值了


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share

2.1m questions

2.1m answers

63 comments

56.5k users

...