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

react-select不显示默认值

  •  0
  • IWI  · 技术社区  · 4 年前

    我正试图基于一组值在react-select中显示默认值。我已确认该值等于我所比较的值。我查过了 this post , this post , this post , this post , this post this post 尽管有相似之处 defaultValue 仍然不会设置。我已经通过loggin确认了我的比较器的结果,它们都是相同的,都是大写的,两个字符串都是一样的。

    我的选择元素是

       <Select
        name="disposition"
        classNamePrefix="select"
        options={statusOptions}
        ref={selectInputRefPlan}
        styles={singleStylesRowComp}
        defaultValue={statusOptions.filter(
          ({ value }) => value.value === lead.disposition
        )}
      />
    

    我的数组是

     const statusOptions = [
        { value: "HOT", label: i18n._(t`HOT`) },
        { value: "WIP", label: i18n._(t`WIP`) },
        { value: "LOST", label: i18n._(t`LOST`) },
        { value: "DNC", label: i18n._(t`DNC`) },
        { value: "WON", label: i18n._(t`WON`) },
        { value: "NEW", label: i18n._(t`NEW`) },
      ];
    

    我正在测试 value 而不是 label ,因此不会出现翻译问题。当我记录响应时, value.value === 'NEW' lead.disposition === 'NEW' 然而 默认值 不会设置。我也试过道具 价值 ,以及通读了6或7篇类似的帖子。是否存在简单的语法错误?还是我错过了什么?

    Here is a sandbox link that demonstrates the issue

    0 回复  |  直到 4 年前
        1
  •  2
  •   Benjamin    4 年前

    错误出在您的过滤器功能中。您分解值,然后访问value.value。这是未定义的。

    相反,在不分解的情况下接受option参数,并访问option.value。

    <Select
      name="disposition"
      classNamePrefix="select"
      options={statusOptions}
      ref={selectInputRefPlan}
      styles={singleStylesRowComp}
      defaultValue={statusOptions.filter((option) => option.value === lead.disposition)}
    />;