【问题标题】:display dropdown value select options using React Hooks使用 React Hooks 显示下拉值选择选项
【发布时间】:2021-08-18 21:46:11
【问题描述】:

我正在尝试使用 React Hooks 中的 useEffect 从下拉选择中获取 startVisit 值。

但我不想在 endVisit 下拉列表中显示选择 startVisit 值。

我该如何处理?我该怎么办?

代码:

  const [endVisitOptions, setEndVisitOptions] = useState(!startVisit);

  useEffect(() => {
    console.log("1",startVisit);  
    console.log("2",visits);  

    for(let x in startVisit)
    {
      console.log(startVisit[x]);      
    }

//your code logic here

    setEndVisitOptions(endVisitOptions);
  }, [startVisit]);





                <Dropdown
                    __key="visitId"
                    __value="title"
                    clearable={false}
                    label="Start Visit"
                    onChange={handleRecurringFormChange}
                    options={visits}
                    property="startVisit"
                    value={startVisit}
                  />
                </div>
              </div>
              <div className="columns">
                <div className="column">
                  <Dropdown
                    __key="visitId"
                    __value="title"
                    clearable={false}
                    label="End Visit"
                    onChange={handleRecurringFormChange}
                    options={endVisitOptions}
                    property="endVisit"
                    value={endVisit}
                  />

输出数据:

下拉 UI 数据:

【问题讨论】:

  • 您能否粘贴完整的代码,说明您如何将选项传递给最终访问?是否保持状态?
  • 是的代码是提到@Shyam
  • 您是否在进行 api 调用以获取 endVisitOptions
  • endVisitOptions 是我保存 endVisit 值的使用状态,它只显示 endVisit .. @Shyam

标签: reactjs react-hooks


【解决方案1】:

您可能希望在调用 setEndVisitOptions 之前过滤访问以不包含 startVisit。

if (startVisit) {     
  const filteredData = visits.filter(v => v.visitId !== startVisit.visitId);
  setEndVisitOptions(filteredData)
}

【讨论】:

  • 感谢@Abhay 的帮助
  • 有可能只在下拉列表中显示startVisitforward 值@Abhay 你明白我的意思吗?我不想显示像 a b c 这样的旧值,如果选择 b 只需在下拉列表中显示 b c
  • 可以只显示'forward'值。如果数组已排序,那么您可以使用 indexOf 或 findIndex 找到当前选定值的索引,并从该索引中切片数组,请参阅 MDN 中的 array.prototype.slice。顺便说一句,如果可以的话,你能考虑接受答案吗?谢谢。
  • 是的,我可以添加'forward' 值吗?代码.. 将不胜感激@Abhay
  • 首先你可以得到索引 - const currValIndex = visits.findIndex(v => v.visitId !== startVisit.visitId);然后使用该索引对数组进行切片 const forwardValues = visit.slice(currValIndex);然后将其设置为最终访问 setEndVisitOptions(forwardValues);
猜你喜欢
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 2019-07-29
相关资源
最近更新 更多