问题描述
我在ms的fluentui中遇到受控ComboBox的问题。 我无法插入自己的文本,在插入并按Enter键后,文本消失了。 选项的选择没有问题。
这里是一个代码笔:https://codepen.io/verhext/pen/jOrKOPe
<ComboBox
componentRef={comboBoxRef}
defaultValue={selectedKey}
selectedKey={selectedKey}
label="Basic ComboBox"
allowFreeform
autoComplete="on"
options={comboBoxBasicoptions}
onChange={onChange}
/>
我不知道我的代码在做什么错。
谢谢!
解决方法
组合框不允许您选择任何文本值。 allowFreeForm prop意味着您可以使用手动搜索来选择项目。
,这里是方法...基本上onChange事件有四个参数..“值”包含输入的文本。当没有匹配的键/值时,“selectedOption”将是未定义的。 您可以使用“text”属性将值分配回控件。
private onComboBoxChange = (selectedOption: any,value: string): void => {
let v = value;
if (selectedOption) {
v = selectedOption.key;
}
this.props.onStateChange(v);
}
<ComboBox allowFreeform={true} autoComplete={'on'}
options={this.props.options}
onChange={(e,selectedOption,i,value) => { this.onComboBoxChange(selectedOption,value); }}
text={<value>} />