型別檢查時為了避免像元件中傳入不必要的資料型別,從而導致一些不必要的bug。下面是學習proptypes的時候的一些筆記
宣告為js型別
optionalarray: proptypes.array,//陣列
optionalbool: proptypes.bool,//布林
optionalfunc: proptypes.func,//function
optionalnumber: proptypes.number,//數字
optionalobject: proptypes.object,
optionalstring: proptypes.string,
optionalsymbol: proptypes.symbol,
可以宣告為任何可以被render的型別optionalelement: proptypes.element,
宣告為某個類的例項optionalmessage: proptypes.instanceof(message),
使用列舉限定optionalenum: proptypes.oneof(['news', 'photos'])
使用object限定為多種型別optionalunion: proptypes.oneoftype([
proptypes.string,
proptypes.number,
proptypes.instanceof(message)
]),
某個特定的陣列型別optionalarrayof: proptypes.arrayof(proptypes.number),
某個特定的object型別optionalobjectof: proptypes.objectof(proptypes.number)
可以使用isrequired來實現上面的所有校驗requiredfunc: proptypes.func.isrequired,
使用function
可以使用乙個function來自定義乙個校驗器 它應該返回乙個error的object型別的錯誤當校驗失敗的時候 如下:
customprop: function(props, propname, componentname)
},
設定預設的props值使用 元件.defaultprops = {} 的語法來 例如下面:class greeting extends react.component
}greeting.defaultprops = ;
react 型別檢查prop types
1,注意 react.proptypes 自 react v15.5 起已棄用。請使用 prop types 庫代替。import proptypes from prop types class greeting extends react.component greeting.proptypes ...
react總結之元件間傳值的型別檢查和預設值
在實際開發中,往往伴隨著團隊的協作,這個時候如果需要乙個人去開發乙個公共的元件,那麼我希望在我使用公共元件的時候,只需要經過簡單的溝通,甚至不溝通,就可以知道,我在使用元件的時候,應該傳遞什麼型別的值,是否一定要傳值,這個時候可以使用外掛程式proptypes,這個外掛程式可以幫我們做型別檢查,使得...
Protobuf 中的型別檢查
在使用protobuffer時,如果定義乙個訊息如下 enum my enum enum type1 1,enum type2 2 message my msg required my enum test enum 1 那麼,在protoc生成的 中,在賦值時 set test enum const...