react-select避免对已选选项进行格式化。

huangapple go评论59阅读模式
英文:

react-select avoid formatting for selected option

问题

我正在我的表单中使用react-select控件。
使用formatOptionLabel方法,我已经自定义了以不同格式显示选项。

<Select
  className="basic-single"
  classNamePrefix="Select"
  isClearable={true}
  isSearchable={true}
  isMulti
  value={this.state.myselectedvalue}
  options={this.state.myoptions}
  onChange={(value) => this.setState({ myselectedvalue: value })}
  isDisabled={this.state.Disabled}
  formatOptionLabel={formatResult}
/>
const formatResult = (item: any) => {
  let imageurl = 'https://mywebsite/' + item.countrycode + '.gif';
  return (
    <div>
      <div className={styles.Optiontablerow}>
        <div className={styles.OptionImageCell}>
          <img src={imageurl}></img>
        </div>
        <div className={styles.Optiontablecell}>{item.label}</div>
      </div>
    </div>
  )
}

现在,当我选择选项时,选定的选项中会显示相同的格式。
对于选定的选项,如何避免此格式?
请帮助。

英文:

I am using react-select control in my form.
Using formatOptionLabel method, i have customized to display options in different format.

&lt;Select
  className=&quot;basic-single&quot;
  classNamePrefix=&quot;Select&quot;
  isClearable={true}
  isSearchable={true}
  isMulti
  value={this.state.myselectedvalue}
  options={this.state.myoptions}
  onChange={(value) =&gt; this.setState({ myselectedvalue: value })}
  isDisabled={this.state.Disabled}
  formatOptionLabel={formatResult}
/&gt;
const formatResult = (item: any) =&gt; {
  let imageurl = &#39;https://mywebsite/&#39; + item.countrycode + &#39;.gif&#39;;
  return (
    &lt;div&gt;
      &lt;div className={styles.Optiontablerow}&gt;
        &lt;div className={styles.OptionImageCell}&gt;
          &lt;img src={imageurl}&gt;&lt;/img&gt;
        &lt;/div&gt;
        &lt;div className={styles.Optiontablecell}&gt;{item.label}&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  )
}

Now when i select the option, same format is appearing in selected options.
For selected options how to avoid this formatting?
Please help.

答案1

得分: 0

我已完成条件格式设置并解决了这个问题。

const formatResult = (item: any) => {
  let imageurl = 'https://mywebsite/' + item.countrycode + '.gif';
  return (
    <div>
      {item.isSelectedOption == false ?
        <div className={styles.Optiontablerow}>
          <div className={styles.OptionImageCell}>
            <img src={imageurl}></img>
          </div>
          <div className={styles.Optiontablecell}>{item.label}</div>
        </div> : {item.label}}
    </div>
  )
}
英文:

I have done conditional formatting and resolved this issue.

const formatResult = (item: any) =&gt; {
let imageurl = &#39;https://mywebsite/&#39; + item.countrycode + &#39;.gif&#39;;
  return (    &lt;div&gt;
{item.isSelectedOption==false?
      &lt;div className={styles.Optiontablerow}&gt;
        &lt;div className={styles.OptionImageCell}&gt;
          &lt;img src={imageurl}&gt;&lt;/img&gt;
        &lt;/div&gt;
        &lt;div className={styles.Optiontablecell}&gt;{item.label}&lt;/div&gt;
      &lt;/div&gt;:{item.label}}
    &lt;/div&gt;
  )
}

</details>



huangapple
  • 本文由 发表于 2023年3月7日 18:12:11
  • 转载请务必保留本文链接:https://go.coder-hub.com/75660583.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定