You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Fluent UI Dropdown选中选项后仍显示占位文本?

解决方案

要让Dropdown始终显示Examples of sentences,核心是不让Dropdown的选中状态同步到自身的显示文本上。你只需要给Dropdown组件添加value=""属性,强制它始终显示占位符文本即可。

修改后的代码如下:

import {
  FluentProvider,
  webLightTheme,
} from '@fluentui/react-components';
import {
  Dropdown,
  Option
} from '@fluentui/react-components/unstable';
import { TextField } from '@fluentui/react';
import * as React from 'react';

export default class Grouped extends React.Component<{}, { value: any }> {
  constructor(props) {
    super(props);
    this.state = { value: '' };
  }

  land = ['A long sentence', 'Another long sentence', 'Another another long sentence'];

  render() {
    return (
      <div>
        <FluentProvider
          className="fluent-provider"
          style={{ display: 'flex' }}
          theme={webLightTheme}
        >
          {/* 添加value="",强制Dropdown始终显示placeholder */}
          <Dropdown
            placeholder="Examples of sentences"
            value=""
            onOptionSelect={(e, data) => {
              if (data.optionText !== undefined) 
                this.setState({ value: data.optionText });
            }}
          >
            {this.land.map((option) => (
              <Option key={option}>{option}</Option>
            ))}
          </Dropdown>
        </FluentProvider>
        <br/>
        <TextField
          label="Write a sentence:"
          value={this.state.value}
          multiline
          rows={3}
          autoAdjustHeight
          resizable={false}
        />
      </div>
    );
  }
}

关于ComboBox的补充说明

你说得没错,Fluent UI的ComboBox确实是单行输入组件,不支持多行文本输入。所以你选择用多行TextField搭配Dropdown提供参考示例的方案完全合理,不需要替换成其他组件。

内容的提问来源于stack exchange,提问作者SoftTimur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:30:29