ReactNative之JSX 元素類型“Navigator”不具有任何構造簽名或調用簽名。ts(2604)

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

直接看【類組件】部分就一目瞭然了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章