2017-07-10 86 views
0

請考慮這個打字稿功能類型的樣式屬性傳遞給函數

function button(style: any, func:()=>void, img: string) { 
    return (
     <button 
     className="Reader_Button" 
     style={style} 
     onClick={func} 
     > 
     <img src={img} alt="" /> 
     Back 
     </button> 
    ); 
    } 

什麼是正確類型的第一個參數style?我覺得它應該像HTMLElementStyle,但我找不到正確的咒語。

對不起,我還不夠清楚。我想知道用什麼類型替換style: any中的「any」。打字稿定義處理檢查提供的對象成員的類型。

我在說的是函數的定義,而不是應用程序。

+0

你試過「width = 100px,font-size:12px;」?或者有可能將這些論據放在外面。 – Yuhao

+0

ReactJS風格的屬性只是地圖,不是嗎? –

+1

'style'需要一個鍵值對象。像這樣:'{color:「red」}'。所以完全變成'style = {{color:「red」}}'。請注意,帶有短劃線的css屬性在React中是駱駝式的。所以'font-size'應該寫成'fontSize'。 – Chris

回答

1

類型是React.CSSProperties。您可以通過編寫<div style={{}}>並按F12,在光標位於style屬性中時在VSCode中找到它。

+0

謝謝。除此之外,還有更多。如果我聲明該參數具有React.CSSProperties類型,那麼我會收到有關嘗試分配諸如'{width:em(4),height:em(4),fontSize:em(0.75),alignSelf:'flex-end '}'給它。但是我沒有得到直接向節點上的style = {}屬性提供相同對象的錯誤。他們不知何故使得style屬性更加接受。 – GaryBishop

+0

@GaryBishop,你到底在抱怨什麼? –

+0

考慮這個[更大的代碼段](https://github.com/gbishop/tar-heel-reader-17/blob/master/src/NavFrame.tsx#L36-L58)。如果我將第36行的bstyle聲明更改爲bstyle:React.CSSProperties,則會出現如[此處]顯示的錯誤(https://gist.github.com/gbishop/6aa2c898d1b63e0cc17a6dbab7e0500c)。我不明白爲什麼div樣式屬性可以接受該對象,但我的CSSProperties參數不能。順便說一句,我知道奇怪的'中心'爲'中心'修復,但爲什麼不總是需要? – GaryBishop

0

常規DOM元素上的樣式prop應該是對象的形式,其中的鍵是css屬性。

實施例: <div style={{ width: "100%", backgroundColor: "black" }} />

注意,在含有破折號屬性的情況下,它們變成駱駝套管。例如background-color變成backgroundColor

React style documentation

+0

請參閱我上面的說明。我知道如何稱呼它。我正在尋找關於如何聲明它的信息,以便它像style屬性那樣檢查類型。 – GaryBishop

相關問題