即时设置 Select 的默认值
Setting defaultValues on the fly for Select
我正在尝试遵循此示例:
https://react-select.com/home
我定义了以下两个数组:
const [selectedAccountTypes, setSelectedAccountTypes] = useState([]);
const [allAccountTypes, setAllAccountTypes] = useState([]);
当用户单击按钮时,我在以下函数中设置值:
const onAccountChanged = async (val) => {
console.log(val);
setSearchedAccount(val);
console.log('onAccountChanged');
console.log(searchedAccountValue);
const accounts = await getAccountTypeLookupList();
var options = accounts.data.map((o) => ({
label: o.name,
value: o.id,
number: o.accountNumber
}))
console.log(options);
setAllAccountTypes(options);
setSelectedAccountTypes(options);
console.log(options);
console.log(setSelectedAccountTypes);
return options;
};
我的组件:
<Select
placeholder='First select account above'
isMulti
cacheOptions
defaultValue ={selectedAccountTypes}
options={allAccountTypes}/>
我希望在这种情况下全部被选中,但没有默认选中任何内容。我错过了什么吗?
将值设置为 selectedAccountTypes,然后 onChange 调用 setSelectedAccountTypes 来更新它。
问题是时机。在我设置选定值时,控件尚未完成控件的渲染。我最终在数组上创建了一个 useEffect,并在其中设置了默认选择。
我正在尝试遵循此示例: https://react-select.com/home
我定义了以下两个数组:
const [selectedAccountTypes, setSelectedAccountTypes] = useState([]);
const [allAccountTypes, setAllAccountTypes] = useState([]);
当用户单击按钮时,我在以下函数中设置值:
const onAccountChanged = async (val) => {
console.log(val);
setSearchedAccount(val);
console.log('onAccountChanged');
console.log(searchedAccountValue);
const accounts = await getAccountTypeLookupList();
var options = accounts.data.map((o) => ({
label: o.name,
value: o.id,
number: o.accountNumber
}))
console.log(options);
setAllAccountTypes(options);
setSelectedAccountTypes(options);
console.log(options);
console.log(setSelectedAccountTypes);
return options;
};
我的组件:
<Select
placeholder='First select account above'
isMulti
cacheOptions
defaultValue ={selectedAccountTypes}
options={allAccountTypes}/>
我希望在这种情况下全部被选中,但没有默认选中任何内容。我错过了什么吗?
将值设置为 selectedAccountTypes,然后 onChange 调用 setSelectedAccountTypes 来更新它。
问题是时机。在我设置选定值时,控件尚未完成控件的渲染。我最终在数组上创建了一个 useEffect,并在其中设置了默认选择。