react-native - 如何将 TouchableOpacity Props 类型与其他字段结合起来

标签 react-native flowtype

我正在尝试添加 color支持styled-components包裹TouchableOpacity并获得正确输入的流程。

type TouchableOpacityProps = $PropertyType<Element<TouchableOpacity>, "props">;
type ButtonTouchableProps = { color: string } & TouchableOpacityProps;

const ButtonTouchable: ComponentType<ButtonTouchableProps> = styled.TouchableOpacity`
  background-color: ${props => props.color};
`;

但是,我在使用 <ButtonTouchable color="#CCCCCC" /> 时收到此流量警告:

Cannot create ButtonTouchable element because property color is missing in object type [1] but exists in props [2]. (References: [1] [2])

最佳答案

// @flow
import { type ElementConfig, type ComponentType } from 'react';
import { TouchableOpacity } from 'react-native';

type ButtonTouchableProps = {|
  ...$Exact<ElementConfig<typeof TouchableOpacity>>,
  color: string,
|};

const ButtonTouchable: ComponentType<ButtonTouchableProps> = styled.TouchableOpacity`
  background-color: ${props => props.color};
`;

关于react-native - 如何将 TouchableOpacity Props 类型与其他字段结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53544319/

相关文章:

javascript - 流类型,转换为数组类型不适用于显式类型,但适用于隐式类型

webview - React Native 和 THREE.js(WebGL 库)集成

javascript - React-native - 循环数组并在 map 上创建标记

react-native - Expo (react native) 淡出闪屏

javascript - 如何使用非字符串引用而不导致流程错误

javascript - 几个小的reduce vs 一个大的forEach?

eslint-plugin-import 如何将流声明的模块添加到异常中

javascript - 在 React 中没有在函数内部获取 ref

ios - 构建我的 .xworkspace iOS 时找不到 -lRealmReact 的库

react-native - 为什么命令 npm install -g expo-cli 不起作用