验证要在 setState 中使用的变量

Validating variable to be used in setState

我有一个拆分日期输入(DD/MM/YYYY 有 3 个不同的输入)- 我遇到了一些控制台问题,其中“一个组件正在将不受控制的输入更改为受控 - 可能是由于值从未定义到已定义。

基本上我想做的是确保如果 dateInputValue 的字符串值存在(格式为:“28-08-2022”),然后我们将其拆分并预填充字段(这是有效的)。

但是,我想通过添加一个检查来使我的代码更健壮,如果 dateInputValue 中不存在像这样的字符串值并且它只是一个空字符串,则 3 个输入由3 个空字符串 ("")。

任何人都可以提出适当的更改来实现这一目标吗?

  const [intialDay, initialMonth, initialYear] = dateInputValue.split("-");
  const [day, setDay] = useState(intialDay);
  const [month, setMonth] = useState(initialMonth);
  const [year, setYear] = useState(initialYear);

您可以检查是否未定义,设置空字符串:

const [day, setDay] = useState(intialDay || '');
const [month, setMonth] = useState(initialMonth || '');
const [year, setYear] = useState(initialYear || '');