Использование response-localize-redux-translations в качестве yup-required-string

Я создаю приложение React и хочу использовать response-localize-redux для перевода и yup для проверки. Моя проблема в том, чтобы понять, как их объединить.

Я знаю, что могу передать строки в yup-require или функцию, так как это подпись:

mixed.required(message?: string | function): Schema

Это прекрасно работает, когда я просто передаю строку, но я не понимаю, как я могу передать перевод моего response-localize-redux после импорта

import { Translate } from 'react-localize-redux';

модуль, в котором я привык к таким компонентам JSX, как

<Translate id="you-can-login-now" />

который возвращает мою переведенную строку тогда. Я понятия не имею..

Мой код:

import { Translate } from 'react-localize-redux';
import * as Yup from 'yup';
<Formik
          initialValues={this.state.data}
          validationSchema={Yup.object().shape({
            name: Yup.string().required('required')
          })}
...
/>

0 ответов

Позвольте дать вам совет, в моем случае я не использую пакет для локализации или перевода, а использую функцию setLocale от самого Yup. Надеюсь, это сработает и для вас. Сначала я создаю файл javascript для такого словарного сообщения.

SRC / валидаторы /setLocaleID.js

    exports.mixed = {
      default: '${path} tidak valid',
      required: 'Bidang ${path} harus diisi',
      oneOf: '${path} harus mengandung salah satu dari nilai berikut: ${values}',
      notOneOf: '${path} tidak dapat mengandung nilai-nilai berikut: ${values}'
    };
    module.exports = exports

а затем я создаю схему проверки

SRC / валидаторы /addUser.js

    import * as Yup from 'yup'
    import localeID from './setLocaleID.js'

    Yup.setLocale(localeID)

    export default Yup.object().shape({
      name: Yup.string()
        .required()
    })

наконец, я импортирую его, на мой взгляд, такой компонент.

src / views/AdminForm.jsx

import AddUserSchema from 'validators/addUser'

    .
    .
    .
    <Formik
                enableReinitialize={true}
                initialValues={userData}
                validationSchema={AddUserSchema}
                onSubmit={(values, { setSubmitting }) => {
                  this.handleSaveUser(values)
                  setSubmitting(false)
                }}
              > 
    .
    .

Я уже пробовал этот способ и надеюсь, что для вас это аналогичное решение.

Другие вопросы по тегам