RCTPicker (#22996)
Summary: [iOS] [Changed] - As #22990 said, move requireNativeComponent to a separate file. I am not familiar with flow, I try to follow the https://pastebin.com/RFpdT76V example but I am not sure I have done it right. Pull Request resolved: https://github.com/facebook/react-native/pull/22996 Differential Revision: D13697082 Pulled By: cpojer fbshipit-source-id: c0c87a8e1a7f0553da994aba230f69b496140200
This commit is contained in:
Родитель
1af390be19
Коммит
6c18069a28
|
@ -18,7 +18,7 @@ const ReactNative = require('ReactNative');
|
|||
const StyleSheet = require('StyleSheet');
|
||||
const View = require('View');
|
||||
const processColor = require('processColor');
|
||||
const requireNativeComponent = require('requireNativeComponent');
|
||||
const RCTPickerNativeComponent = require('RCTPickerNativeComponent');
|
||||
|
||||
import type {SyntheticEvent} from 'CoreEventTypes';
|
||||
import type {ColorValue} from 'StyleSheetTypes';
|
||||
|
@ -52,10 +52,6 @@ type RCTPickerIOSType = Class<
|
|||
>,
|
||||
>;
|
||||
|
||||
const RCTPickerIOS: RCTPickerIOSType = (requireNativeComponent(
|
||||
'RCTPicker',
|
||||
): any);
|
||||
|
||||
type Label = Stringish | number;
|
||||
|
||||
type Props = $ReadOnly<{|
|
||||
|
@ -111,7 +107,7 @@ class PickerIOS extends React.Component<Props, State> {
|
|||
render() {
|
||||
return (
|
||||
<View style={this.props.style}>
|
||||
<RCTPickerIOS
|
||||
<RCTPickerNativeComponent
|
||||
ref={picker => {
|
||||
this._picker = picker;
|
||||
}}
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
const requireNativeComponent = require('requireNativeComponent');
|
||||
|
||||
import type {SyntheticEvent} from 'CoreEventTypes';
|
||||
import type {TextStyleProp} from 'StyleSheet';
|
||||
import type {NativeComponent} from 'ReactNative';
|
||||
|
||||
type PickerIOSChangeEvent = SyntheticEvent<
|
||||
$ReadOnly<{|
|
||||
newValue: number | string,
|
||||
newIndex: number,
|
||||
|}>,
|
||||
>;
|
||||
|
||||
type RCTPickerIOSItemType = $ReadOnly<{|
|
||||
label: ?Label,
|
||||
value: ?(number | string),
|
||||
textColor: ?number,
|
||||
|}>;
|
||||
|
||||
type Label = Stringish | number;
|
||||
|
||||
type RCTPickerIOSType = Class<
|
||||
NativeComponent<
|
||||
$ReadOnly<{|
|
||||
items: $ReadOnlyArray<RCTPickerIOSItemType>,
|
||||
onChange: (event: PickerIOSChangeEvent) => void,
|
||||
onResponderTerminationRequest: () => boolean,
|
||||
onStartShouldSetResponder: () => boolean,
|
||||
selectedIndex: number,
|
||||
style?: ?TextStyleProp,
|
||||
testID?: ?string,
|
||||
|}>,
|
||||
>,
|
||||
>;
|
||||
|
||||
module.exports = ((requireNativeComponent('RCTPicker'): any): RCTPickerIOSType);
|
Загрузка…
Ссылка в новой задаче