需求说明
需求是类似次联选择。 当select选中其他项再更新select内容时被选中项还是上次选择的内容,哪怕新的数据并不存在这个选项。 官方文档给的默认选择是用defaultValue 去实现默认选择。但是这个只会在组件初始化时执行。内容更新并不会执行。 另外关于这个在其他博主内容看到需要配合key属性去绑定同一个值才能实现默认选择
解决方案
把defaultValue和key替换成value属性。 直接用value去绑定选中的值。 但是需要在onchange事件内手动切换被绑的值。
const [platformId, setPlatformId] = useState<string>('0'); //选中的 <Select placeholder="请选择" style={{ width: 350 }} onChange={handleChangePlatform} value={platformId} options={platformsList} dropdownStyle={{ maxHeight: 400, overflow: 'auto', backgroundColor: '#314c6f', }} />
const handleChangePlatform = (value: string) => { setPlatformId(value); changePlatform(value); };
changePlatform是我自己需求内的功能实现不用管