Как передать массив динамически в asyncBlurField Redux-форме? - PullRequest
0 голосов
/ 30 апреля 2018

Я следую учебному пособию по редуксу и почти закончил с этим, но не смог передать массив в файл asyncValidate

Мне нужно изменить массив ['john', 'paul', 'george', 'ringo'], используя массив из ответа сервера ...

const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
const asyncValidate = (values /*, dispatch */) => {
  return sleep(1000).then(() => {
    // simulate server latency
    if (['john', 'paul', 'george', 'ringo'].includes(values.username)) {
      throw { username: 'That username is taken' }
    }
  })
}

export default asyncValidate

1 Ответ

0 голосов
/ 30 апреля 2018

ваша asyncValidate функция должна сделать вызов API, который возвращает вам список, как

const asyncValidate = (values /*, dispatch */) => {
  return axios.get('url').then((data) => {
    if (data.includes(values.username)) {
      throw { username: 'That username is taken' }
    }
  })
}

export default asyncValidate
...