JSX 元素類型“Navigator”不具有任何構造簽名或調用簽名。ts(2604)
這個主要是ts和js的寫法的區別:
- js:傳統的方式直接在構造函數中使用
constructor(){
this.state = {
num1:10
}
}
- 使用ts開發過程中需要先定義一個接口,規範數據類型,通過泛型傳入到類中
//定義一個接口規範state的類型
export interface State{
num1:number
}
// 默認導出一個Hello類,如果Component<Props,State>裏面沒有就用object
export default class Hello extends React.Component<Props,State>{
constructor(props:Props){
super(props);
this.state = {
num1:10
}
}
}
- 父組件傳遞參數到子組件
使用ts開發方式,跟上面的state一樣的,只是不管怎麼樣都要在構造函數中寫super
在看上面的問題:
A必須是個類,或函數, 並且返回JSX Navigator對象,因爲jsx需要是個JSX Element
看看官方文檔,很詳細
https://www.tslang.cn/docs/handbook/jsx.html
直接看【類組件】部分就一目瞭然了。