mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-02-02 09:08:58 +08:00
Use .flow files to tell Flow about react-native module
Reviewed By: jeffmo Differential Revision: D2735788 fb-gh-sync-id: 7a15caa5effb89b902bba7e0031822f534813c52
This commit is contained in:
committed by
facebook-github-bot-7
parent
fe69ac95bd
commit
99bba8ca4e
@@ -45,6 +45,9 @@ var MovieCell = React.createClass({
|
||||
onShowUnderlay={this.props.onHighlight}
|
||||
onHideUnderlay={this.props.onUnhighlight}>
|
||||
<View style={styles.row}>
|
||||
{/* $FlowIssue #7363964 - There's a bug in Flow where you cannot
|
||||
* omit a property or set it to undefined if it's inside a shape,
|
||||
* even if it isn't required */}
|
||||
<Image
|
||||
source={getImageSource(this.props.movie, 'det')}
|
||||
style={styles.cellImage}
|
||||
|
||||
@@ -34,6 +34,9 @@ var MovieScreen = React.createClass({
|
||||
return (
|
||||
<ScrollView contentContainerStyle={styles.contentContainer}>
|
||||
<View style={styles.mainSection}>
|
||||
{/* $FlowIssue #7363964 - There's a bug in Flow where you cannot
|
||||
* omit a property or set it to undefined if it's inside a shape,
|
||||
* even if it isn't required */}
|
||||
<Image
|
||||
source={getImageSource(this.props.movie, 'det')}
|
||||
style={styles.detailsImage}
|
||||
|
||||
@@ -130,7 +130,7 @@ const IsConnected = React.createClass({
|
||||
const IsConnectionExpensive = React.createClass({
|
||||
getInitialState() {
|
||||
return {
|
||||
isConnectionExpensive: null,
|
||||
isConnectionExpensive: (null : ?boolean),
|
||||
};
|
||||
},
|
||||
_checkIfExpensive() {
|
||||
|
||||
121
Libraries/react-native/react-native.js.flow
Normal file
121
Libraries/react-native/react-native.js.flow
Normal file
@@ -0,0 +1,121 @@
|
||||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*
|
||||
* This file exists because react-native.js started using getters and setters
|
||||
* and Flow doesn't have a good way to enable getters and setters for
|
||||
* react-native without forcing all react-native users to also enable getters
|
||||
* and setters. Until we solve that issue, we can use this .flow file to
|
||||
* pretend like react-native doesn't use getters and setters
|
||||
*
|
||||
* @flow
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
// Export React, plus some native additions.
|
||||
//
|
||||
// The use of Object.create/assign is to work around a Flow bug (#6560135).
|
||||
// Once that is fixed, change this back to
|
||||
//
|
||||
// var ReactNative = {...require('React'), /* additions */}
|
||||
//
|
||||
var ReactNative = Object.assign(Object.create(require('React')), {
|
||||
// Components
|
||||
ActivityIndicatorIOS: require('ActivityIndicatorIOS'),
|
||||
ART: require('ReactNativeART'),
|
||||
DatePickerIOS: require('DatePickerIOS'),
|
||||
DrawerLayoutAndroid: require('DrawerLayoutAndroid'),
|
||||
Image: require('Image'),
|
||||
ListView: require('ListView'),
|
||||
MapView: require('MapView'),
|
||||
Modal: require('Modal'),
|
||||
Navigator: require('Navigator'),
|
||||
NavigatorIOS: require('NavigatorIOS'),
|
||||
PickerIOS: require('PickerIOS'),
|
||||
ProgressBarAndroid: require('ProgressBarAndroid'),
|
||||
ProgressViewIOS: require('ProgressViewIOS'),
|
||||
ScrollView: require('ScrollView'),
|
||||
SegmentedControlIOS: require('SegmentedControlIOS'),
|
||||
SliderIOS: require('SliderIOS'),
|
||||
SnapshotViewIOS: require('SnapshotViewIOS'),
|
||||
Switch: require('Switch'),
|
||||
PullToRefreshViewAndroid: require('PullToRefreshViewAndroid'),
|
||||
SwitchAndroid: require('SwitchAndroid'),
|
||||
SwitchIOS: require('SwitchIOS'),
|
||||
TabBarIOS: require('TabBarIOS'),
|
||||
Text: require('Text'),
|
||||
TextInput: require('TextInput'),
|
||||
ToastAndroid: require('ToastAndroid'),
|
||||
ToolbarAndroid: require('ToolbarAndroid'),
|
||||
Touchable: require('Touchable'),
|
||||
TouchableHighlight: require('TouchableHighlight'),
|
||||
TouchableNativeFeedback: require('TouchableNativeFeedback'),
|
||||
TouchableOpacity: require('TouchableOpacity'),
|
||||
TouchableWithoutFeedback: require('TouchableWithoutFeedback'),
|
||||
View: require('View'),
|
||||
ViewPagerAndroid: require('ViewPagerAndroid'),
|
||||
WebView: require('WebView'),
|
||||
|
||||
// APIs
|
||||
ActionSheetIOS: require('ActionSheetIOS'),
|
||||
AdSupportIOS: require('AdSupportIOS'),
|
||||
AlertIOS: require('AlertIOS'),
|
||||
Animated: require('Animated'),
|
||||
AppRegistry: require('AppRegistry'),
|
||||
AppStateIOS: require('AppStateIOS'),
|
||||
AsyncStorage: require('AsyncStorage'),
|
||||
BackAndroid: require('BackAndroid'),
|
||||
CameraRoll: require('CameraRoll'),
|
||||
Dimensions: require('Dimensions'),
|
||||
Easing: require('Easing'),
|
||||
ImagePickerIOS: require('ImagePickerIOS'),
|
||||
IntentAndroid: require('IntentAndroid'),
|
||||
InteractionManager: require('InteractionManager'),
|
||||
LayoutAnimation: require('LayoutAnimation'),
|
||||
LinkingIOS: require('LinkingIOS'),
|
||||
NetInfo: require('NetInfo'),
|
||||
PanResponder: require('PanResponder'),
|
||||
PixelRatio: require('PixelRatio'),
|
||||
PushNotificationIOS: require('PushNotificationIOS'),
|
||||
Settings: require('Settings'),
|
||||
StatusBarIOS: require('StatusBarIOS'),
|
||||
StyleSheet: require('StyleSheet'),
|
||||
UIManager: require('UIManager'),
|
||||
VibrationIOS: require('VibrationIOS'),
|
||||
|
||||
// Plugins
|
||||
DeviceEventEmitter: require('RCTDeviceEventEmitter'),
|
||||
NativeAppEventEmitter: require('RCTNativeAppEventEmitter'),
|
||||
NativeModules: require('NativeModules'),
|
||||
Platform: require('Platform'),
|
||||
processColor: require('processColor'),
|
||||
requireNativeComponent: require('requireNativeComponent'),
|
||||
|
||||
// Prop Types
|
||||
EdgeInsetsPropType: require('EdgeInsetsPropType'),
|
||||
PointPropType: require('PointPropType'),
|
||||
|
||||
// See http://facebook.github.io/react/docs/addons.html
|
||||
addons: {
|
||||
LinkedStateMixin: require('LinkedStateMixin'),
|
||||
Perf: undefined,
|
||||
PureRenderMixin: require('ReactComponentWithPureRenderMixin'),
|
||||
TestModule: require('NativeModules').TestModule,
|
||||
TestUtils: undefined,
|
||||
batchedUpdates: require('ReactUpdates').batchedUpdates,
|
||||
cloneWithProps: require('cloneWithProps'),
|
||||
createFragment: require('ReactFragment').create,
|
||||
update: require('update'),
|
||||
},
|
||||
});
|
||||
|
||||
if (__DEV__) {
|
||||
ReactNative.addons.Perf = require('ReactDefaultPerf');
|
||||
ReactNative.addons.TestUtils = require('ReactTestUtils');
|
||||
}
|
||||
|
||||
module.exports = ReactNative;
|
||||
Reference in New Issue
Block a user