Formik: ΠœΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 2 мая 2018  Β·  9ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: formium/formik

Вопрос

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Π²Π²ΠΎΠ΄Π° маски (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, response-text-mask) с Formik?

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

@jaredpalmer спасибо. Π― понял это здСсь. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ я это сдСлал (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ react-text-mask ):

      input = <Field name={name} render={({ field }) => {
        return <MaskedInput mask={Masks[mappedField.mask]}
            {...field}
            id={name}
            placeholder={mappedField.placeholder[language]} />
      }} />

ВсС 9 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”Π°, Π²Ρ‹ просто ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅ΡΡŒ ΠΊ Π½Π΅ΠΌΡƒ ΠΊΠ°ΠΊ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ Π²Π²ΠΎΠ΄Ρƒ.

@jaredpalmer спасибо. Π― понял это здСсь. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ я это сдСлал (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ react-text-mask ):

      input = <Field name={name} render={({ field }) => {
        return <MaskedInput mask={Masks[mappedField.mask]}
            {...field}
            id={name}
            placeholder={mappedField.placeholder[language]} />
      }} />

@ThiagoMiranda, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку?
НапримСр, с этим Π°Π³Π°:

          passport: yup
            .string()
            .matches(/(^[0-9]+$)/, 'only digits here')
            .required('enter something')
            .min(4, 'Number of digits left: ' + digitsLeft)
            .max(4, 'This is too much')

Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«0___Β» ΠΈ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° минимального максимума.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π― Π²ΠΈΠΆΡƒ замаскированный Π²Π²ΠΎΠ΄, Π΅Π³ΠΎ маскировку ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° я Π½Π°Π±ΠΈΡ€Π°ΡŽ values.masked Π½Π΅ обновляСтся, Π΄Π°ΠΆΠ΅ Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ имя Π² ΠΏΠΎΠ»Π΅.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Field ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΎΠΏΠΎΡ€Ρƒ field , которая MaskedInput Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ отобраТаСтся Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ.

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ полСвая ΠΎΠΏΠΎΡ€Π° Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС нСизвСстныС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈΠ· поля

@yyynnn - я столкнулся с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ я создал собствСнный ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ удаляСт символы маски ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Formik setFieldValue .

handleChange = (event, field, form, charsToStrip) => {
  const cleanValue = stripCharacters(event.target.value, charsToStrip)
  form.setFieldValue(field.name, cleanValue)
}

function stripCharacters (string, characters) {
  const re = new RegExp(`[${characters}]+`, 'g')
  return string.replace(re, '')
}

@ThiagoMiranda, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°ΠΌΠ°ΡΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку?
...
Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«0___Β» ΠΈ Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° минимального максимума.

поТалуйста, посмотритС Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ https://codesandbox.io/s/4rkyylp24w

@jaredpalmer спасибо. Π― понял это здСсь. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ я это сдСлал (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ react-text-mask ):

эта Ρ€Π°Π±ΠΎΡ‚Π° для мСня Ρ‚ΠΎΠΆΠ΅
<Field name='telefone' > {({ field }) => ( <MaskedInput mask={['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]} {...field} placeholder='Telefone' className="form-control" /> )} </Field>

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

jaredpalmer picture jaredpalmer  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

jordantrainor picture jordantrainor  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

giulioambrogi picture giulioambrogi  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

PeerHartmann picture PeerHartmann  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

green-pickle picture green-pickle  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ