首页 > 解决方案 > 我只需要在用户完成输入后调用该函数

问题描述

我正在更改一个用户输入,该输入用于获取多个键和值以添加到数组中的对象。现在数组内的对象内将只有一个字符串,或者至少这是我的希望。如果不需要,我不想更改后端。所以现在我遇到了将字符串值保存在许多不同对象中的麻烦,每个字母都键入例如:

1: "T"
2: "Th"
3: "Thi"
4: "Thin"
5: "Thing"
6: "Things"

所以我想知道如何在用户完成输入后才保存该值,以便只保存一个数组?

我尝试过使用异步函数,但最终得到了相同的结果,我的代码如下所示:

... const recommendedDescription = async (value) => {
    try {
      let rec = await value
      handleMedicationChange(rec)
    }catch (error) {
      console.log(error)
    }
   
    return 
  }
  const handleMedicationChange = (value, medicationNames) => {
    let medications = detailedTreatmentPlan.recommendedMedications || [];
  
    // medications = medications.filter(
    //   (item) => !medicationNames.includes(item.name)
    // );
    console.log(value)
    medications.push(value);
    const data = update(detailedTreatmentPlan, {
      recommendedMedications: { $set: medications }
    });

    props.onUpdate("detailedTreatmentPlan", data);
  };

return (
<ContentBlock title="Recommended OTC Medication">
        <Input
          type="textarea"
          note={detailedTreatmentPlan["recommendedMedications"]}
          placeholder="Help"
          
          onChange={e => recommendedDescription(e.target.value)}
          className="recommendedMedications"
          name="recommendedMedications"
          id="recommendedMedications"
        />
      </ContentBlock>
)

标签: javascriptreactjsasynchronous

解决方案


推荐阅读