يجب ترجمة <TextField type="number" min="0" max="10" step="1" />
باستخدام Typescript
تلقي خطأ Typescript التالي لـ min ، مشابه لـ max والخطوة: [ts] Property 'min' does not exist on type 'IntrinsicAttributes & TextFieldProps & { children?: ReactNode; }'.
| التقنية | الإصدار |
| -------------- | --------- |
| واجهة المستخدم المادية | 1.0.0 بيتا 21 |
| رد فعل | 16.0.0 |
| مطبعي | 2.6.1 |
هل هذا فعال؟
<TextField type="number" inputProps={{ min: "0", max: "10", step: "1" }} />
نعم هذا يعمل. يقبل inputProps
كائنًا به أي شيء بداخله ، على الرغم من ذلك ، فأنا أختار فعليًا عدم الاشتراك في نظام الكتابة عن طريق القيام بذلك بهذه الطريقة.
نعم هذا يعمل. يقبل
inputProps
كائنًا به أي شيء بداخله ، على الرغم من ذلك ، فأنا أختار فعليًا عدم الاشتراك في نظام الكتابة عن طريق القيام بذلك بهذه الطريقة.
نقطة جيدة ، لقد فتحت رقم 9321 لإصلاح كتابة inputProps
.
الغرض من inputProps
هو السماح بأي شيء يسير على InputComponent
. يسمح هذا بالتكامل المفتوح مع المكونات الخارجية ، والتي للأسف قد لا نعرف أو لدينا أنواع.
مثال:
import * as MaskedInput from 'react-text-mask'
<TextField
InputProps={{
inputComponent: MaskedInput,
}}
inputProps={{
guide: false,
mask,
placeholderChar: '\u2000',
}}
type="tel"
value={value}
/>
لذا فإن البديل لتجنب الكتابة بقوة inputProps
في نفس السيناريو (شكرًاpelotom) هو
import { InputProps as MuiInputProps } from 'material-ui/Input'
<TextField
InputProps={{
inputComponent: (inputProps: MuiInputProps) => (
<MaskedInput {...inputProps} guide={false} mask={mask} placeholderChar="\u2000" />
),
}}
type="tel"
value={value}
/>
تعملpelotom على تقديم اقتراح / مشكلة جديدة لإعادة زيارة واجهة برمجة التطبيقات هذه.
تضمين التغريدة
لم يتم تعريف MaskedInput ،
لم يتم تعريف القناع
:(
هذا يبدو وكأنه حل بديل معقد للغاية
سيكون من الأفضل تحديد هذه على مستوى TextField ، بحيث يمكن إجراء التحقق دون مجموعة من المنطق المتكرر في كل مكان. أكره أن أضطر إلى تمديد TextField في كل مرة أرغب في استخدامه لحقل رقم بمتطلبات min / max / step.
التعليق الأكثر فائدة
هل هذا فعال؟