【发布时间】:2020-08-05 16:45:58
【问题描述】:
我在 Sharepoint webpart 中有一个 FluentUI Dropdown component,它的行为很奇怪,它的定义如下:
<Dropdown
defaultSelectedKey={new Date().getMonth()}
options={getMonthSelection()}
styles={dropdownStyles}
onChange={this.handleTimePeriodChange}
selectedKey={this.state.month}
/>
当 onChange 事件触发时,它会调用以下函数:
private handleTimePeriodChange(event, option, index) {
this.setState({
month: option.key
});
}
除了下拉 UI 元素没有改变以反映新的选择之外,一切都很好。如果我删除对 setState() 的调用,则 UI 元素会更新以反映选择,但状态不会更新。
谁能看到我哪里出错了,是否有办法在不破坏 UI 元素的情况下更新状态属性?
【问题讨论】:
-
应该以什么方式改变?
-
它应该改变以反映已选择的值。当页面加载时,下拉菜单显示当前月份,但当您选择新选项时,尽管控件正确触发 onChange 事件并使用新月份更新状态,但控件仍显示原始值。