代码之家  ›  专栏  ›  技术社区  ›  Fredy31

如何在React Select中使用setValue?

  •  0
  • Fredy31  · 技术社区  · 3 年前

    文档中没有太多关于如何在react-select中使用setValue函数的内容。

    这是我的问题。在我的多选中,我有一些元素,如果被选中,会使其他元素无效。或者,当选择2个特定元素时,必须选择第三个元素。

    所以我做了一个if。我有一个裁判,所以看起来像这样:

    if(selectInputRef.current){
        if(selectInputRef.current.select.hasValue('optionA')){
            selectInputRef.current.select.clearValue();
            //selectInputRef.current.select.setValue('optionB','deselect-option');
        }
        if(selectInputRef.current.select.hasValue('optionA') && selectInputRef.current.select.hasValue('optionC')){
            //selectInputRef.current.select.setValue('optionD','select-option');
        }
    }
    

    因此,这项工作中所有未注释的元素。我可以检查是否选择了该值,如果是,我可以完全清除选择。

    但现在我需要特别改变一些元素。这行不通。而且医生在这方面也没什么用。

    enter image description here

    那么,我该怎么写才能让这句话奏效呢?

    0 回复  |  直到 3 年前
        1
  •  5
  •   Fredy31    3 年前

    好吧,这么小的更正。

    这个 hasValue('optionA') 行只会告诉您该值是否存在。如果它被检查过,就不会了。

    你需要做一个 getValue() 获取所有选中的选项,然后进行搜索。

    此外,setValue设置选择的完整值。不需要Clear。它需要完整的数据。所以 setValue([{value: 'optionA', label:'Option A'}]); 将选中该选项并取消选中其他所有选项。