mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix: Update incorrect SwitchChangeEvent type (#34931)
Summary:
I noticed that typescript type for `onChange` event of `<Switch/>` was incorrect
```tsx
<Switch
onChange={(event) => {
// TS
event.value; // boolean
event.nativeEvent.value; //TS2339: Property 'value' does not exist on type 'Event'.
// JS
console.log(event.nativeEvent); // {value:false,target:87}
console.log(event.value); // undefined
}}
/>
```
## Changelog
[General] [Changed] - Typescript: update incorrect `SwitchChangeEvent` type
Pull Request resolved: https://github.com/facebook/react-native/pull/34931
Test Plan: ...
Reviewed By: lunaleaps
Differential Revision: D40240552
Pulled By: skinsshark
fbshipit-source-id: 4d39d547778de4ac4dc6c94471f05bfbe157d0e5
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0c5ef573fe
commit
5dd2f2e4b7
@@ -10,7 +10,11 @@
|
||||
|
||||
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
|
||||
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
||||
import type {BubblingEventHandler, WithDefault} from '../../Types/CodegenTypes';
|
||||
import type {
|
||||
BubblingEventHandler,
|
||||
Int32,
|
||||
WithDefault,
|
||||
} from '../../Types/CodegenTypes';
|
||||
import type {ViewProps} from '../View/ViewPropTypes';
|
||||
|
||||
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
|
||||
@@ -19,6 +23,7 @@ import * as React from 'react';
|
||||
|
||||
type SwitchChangeEvent = $ReadOnly<{|
|
||||
value: boolean,
|
||||
target: Int32,
|
||||
|}>;
|
||||
|
||||
type NativeProps = $ReadOnly<{|
|
||||
|
||||
+5
-1
@@ -13,6 +13,7 @@ import {NativeMethods} from '../../Renderer/shims/ReactNativeTypes';
|
||||
import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
|
||||
import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
|
||||
import {ViewProps} from '../View/ViewPropTypes';
|
||||
import {NativeSyntheticEvent, TargetedEvent} from '../../Types/CoreEventTypes';
|
||||
|
||||
export interface SwitchPropsIOS extends ViewProps {
|
||||
/**
|
||||
@@ -37,10 +38,13 @@ export interface SwitchPropsIOS extends ViewProps {
|
||||
tintColor?: ColorValue | undefined;
|
||||
}
|
||||
|
||||
export interface SwitchChangeEvent extends React.SyntheticEvent {
|
||||
export interface SwitchChangeEventData extends TargetedEvent {
|
||||
value: boolean;
|
||||
}
|
||||
|
||||
export interface SwitchChangeEvent
|
||||
extends NativeSyntheticEvent<SwitchChangeEventData> {}
|
||||
|
||||
export interface SwitchProps extends SwitchPropsIOS {
|
||||
/**
|
||||
* Color of the foreground switch grip.
|
||||
|
||||
@@ -27,6 +27,7 @@ import * as React from 'react';
|
||||
type SwitchChangeEvent = SyntheticEvent<
|
||||
$ReadOnly<{|
|
||||
value: boolean,
|
||||
target: number,
|
||||
|}>,
|
||||
>;
|
||||
|
||||
|
||||
@@ -10,7 +10,11 @@
|
||||
|
||||
import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
|
||||
import type {ColorValue} from '../../StyleSheet/StyleSheet';
|
||||
import type {BubblingEventHandler, WithDefault} from '../../Types/CodegenTypes';
|
||||
import type {
|
||||
BubblingEventHandler,
|
||||
Int32,
|
||||
WithDefault,
|
||||
} from '../../Types/CodegenTypes';
|
||||
import type {ViewProps} from '../View/ViewPropTypes';
|
||||
|
||||
import codegenNativeCommands from '../../Utilities/codegenNativeCommands';
|
||||
@@ -19,6 +23,7 @@ import * as React from 'react';
|
||||
|
||||
type SwitchChangeEvent = $ReadOnly<{|
|
||||
value: boolean,
|
||||
target: Int32,
|
||||
|}>;
|
||||
|
||||
type NativeProps = $ReadOnly<{|
|
||||
|
||||
@@ -1429,7 +1429,7 @@ const SwitchOnChangePromiseTest = () => (
|
||||
<Switch
|
||||
onChange={event => {
|
||||
const e: SwitchChangeEvent = event;
|
||||
return new Promise(() => e.value);
|
||||
return new Promise(() => e.nativeEvent.value);
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user