我如何获得用户使用下拉按钮选择的选项进行操作?
How do i get the option selected by a user using the Dropdown button to operate on?
我是 React 和 office-ui-fabric 的新手,我正在尝试创建一个 VSCode 扩展接受某些输入参数并根据用户选择的输入,我应该操作在选择的选项上。我在下拉按钮下以选项的形式接受用户输入。目前,一旦用户从下拉列表中选择其中一个选项,我就看不到 dropdown.I 中选择的选项,只看到未定义的显示在控制台中。
我尝试了不同的方法从用户那里获取这个输入参数,但我最终还是在控制台中显示了 undefined。
const Options: IDropdownOption[] = [
{ key: 'A', text: 'A', itemType: DropdownMenuItemType.Header },
{ key: 'B', text: 'B' },
{ key: 'C', text: 'C' },
];
const [selectedItem, setOption] = React.useState<string | undefined>(undefined);
return (
<div>
<Dropdown placeholder="Select option" options={Options} styles={dropdownStyles} selectedKey={selectedItem} onChange={event =>{
setOption((event.target as HTMLInputElement).value);console.log(selectedItem)}} />
)
windows.console 应该显示用户选择的输入,而目前我看到未定义
office-ui-fabric
Dropdown
组件通过 onChanged
属性触发更改事件,该属性在被调用时传递用户选择的下拉项下的实际选项对象。
通过将 onChange
更改为 onChanged
,然后修改此事件处理程序以读取所选选项的 text
(而不是 [=18 的 value
=]) 应该产生所需的结果:
<Dropdown placeholder="Select option"
options={Options}
styles={dropdownStyles}
selectedKey={selectedItem}
onChanged={ selectedOption =>{
setOption(selectedOption.text);
console.log("Selected", selectedOption.text);
}}/>
更新
这:setOption(selectedOption.text);
调用setOption()
函数,将用户选择的选项的显示值传递给它。当调用 setOption()
时,这会使用传递的值(即所选选项的显示值)更新组件的 stat selectedItem
状态。请注意,调用 setOption()
的副作用是将发生组件的重新渲染,这意味着 selectedItem
上的组件 displaying/relying 的部分将自动更新,等等
我是 React 和 office-ui-fabric 的新手,我正在尝试创建一个 VSCode 扩展接受某些输入参数并根据用户选择的输入,我应该操作在选择的选项上。我在下拉按钮下以选项的形式接受用户输入。目前,一旦用户从下拉列表中选择其中一个选项,我就看不到 dropdown.I 中选择的选项,只看到未定义的显示在控制台中。
我尝试了不同的方法从用户那里获取这个输入参数,但我最终还是在控制台中显示了 undefined。
const Options: IDropdownOption[] = [
{ key: 'A', text: 'A', itemType: DropdownMenuItemType.Header },
{ key: 'B', text: 'B' },
{ key: 'C', text: 'C' },
];
const [selectedItem, setOption] = React.useState<string | undefined>(undefined);
return (
<div>
<Dropdown placeholder="Select option" options={Options} styles={dropdownStyles} selectedKey={selectedItem} onChange={event =>{
setOption((event.target as HTMLInputElement).value);console.log(selectedItem)}} />
)
windows.console 应该显示用户选择的输入,而目前我看到未定义
office-ui-fabric
Dropdown
组件通过 onChanged
属性触发更改事件,该属性在被调用时传递用户选择的下拉项下的实际选项对象。
通过将 onChange
更改为 onChanged
,然后修改此事件处理程序以读取所选选项的 text
(而不是 [=18 的 value
=]) 应该产生所需的结果:
<Dropdown placeholder="Select option"
options={Options}
styles={dropdownStyles}
selectedKey={selectedItem}
onChanged={ selectedOption =>{
setOption(selectedOption.text);
console.log("Selected", selectedOption.text);
}}/>
更新
这:setOption(selectedOption.text);
调用setOption()
函数,将用户选择的选项的显示值传递给它。当调用 setOption()
时,这会使用传递的值(即所选选项的显示值)更新组件的 stat selectedItem
状态。请注意,调用 setOption()
的副作用是将发生组件的重新渲染,这意味着 selectedItem
上的组件 displaying/relying 的部分将自动更新,等等