异步验证 react-final-form setTimeout

Async validation react-final-form setTimeout

我正在从 redux-form 迁移,我有表单问题,我有异步验证。此验证发生在更改时,但我只想在用户停止输入时进行异步调用。

在 redux-form 中,我使用了 setTimeout、clearTimeout 并在异步验证中抛出一个类似于 this

的错误

我已经创建了我希望能正常工作的示例。完整示例可用 here.

const usernameAvailable = value => {
  if (!value) {
    return "Required";
  }

  setTimeout(() => {
    return "Username taken!";
  }, 500);
};
如果没有值,

Required 会按预期工作,但 Username taken! 永远不会显示为错误。

使用validateOnBlur怎么样?