【发布时间】:2020-07-06 13:09:40
【问题描述】:
我的背景是一名 iOS 开发人员,在 swift 中我可以做 MyInput: UITextField(快速组件替代 React Native Input)。 这意味着 MyInput 自动获得了 UITextField 具有的所有属性和功能。目前在 react native 我这样做:
interface Props {
title?: string;
text: string;
onChangeText?: (string) => void;
keyboardType?: KeyboardTypeOptions;
disabled?: boolean;
onBlur?: () => void;
}
export default function MyInput ({
title, text, onChangeText, keyboardType, disabled = false, onBlur= (()=> null)}: Props)
{
return(
<Input
label={title}
onChangeText={(text) => onChangeText(text)}
value={text}
keyboardType={keyboardType}
disabled={disabled}
onBlur={() => onBlur()}
/>);
基本上,我必须从 Input 中添加任何我想要的内容到 Props 中,然后将其重定向到 Input。有没有一种方法可以升级 Input 而无需将大部分代码加倍并在 MyInput 中默认提供所有 Input 属性?
所以像 onBlur 这样的方法必须重写。
或者如果有人至少可以告诉我用谷歌搜索什么来找到这样的解决方案?
【问题讨论】:
-
如果我理解正确,您是说要将道具传递给 MyInput 组件,而不是再次将相同的属性重写到 Input 组件,只需将其传递给它?
-
@Tushar 如果可能的话是的,或者更准确地说,我认为 MyInput 会自动拥有 Input 拥有的道具,无论哪种方式都会有很大帮助。
标签: javascript reactjs typescript react-native react-native-component