为什么使用formik useField时不显示错误?

问题描述

我的任务是编写代码来选择日期。
这是我现在所拥有的:

export let DatePicker = ({ label,...props }) => {
  let [field,Meta,helpers] = useField(props.name)
  let { value,touched,error } = Meta
  if(value === null)
    value = {}
  let { setValue,setTouched,setError } = helpers
  let days = [],meses = []
  for(let i = 1; i <= 31; i++)
    days.push(i)
  for(let i = 1; i <= 12; i++)
    meses.push(i)
  console.log(error)
  return (
    <div>
      <p>{label}</p>
      <select>
        {days.map(day => (
          <option
            onClick={() => {
              setValue({ ...value,day })
              setTouched(true)
              if(value.day === undefined || value.mes === undefined)
                setError('Error!')
            }}
            key={day} value={day} label={day}
          />
        ))}
      </select>
      <select>
        {meses.map(mes => (
          <option
            onClick={() => {
              setValue({ ...value,mes })
              setTouched(true)
              if(value.day === undefined || value.mes === undefined)
                setError('Error!')
            }}
            key={mes} value={mes} label={mes}
          />
        ))}
      </select>
      {touched && error && (
        <div className="form_error">{error}</div>
      )}
    </div>
  )
}

在控制台中我看到“错误!”首先显示,然后立即未定义。我不明白是什么问题,帮助谁可以

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...