Tengo esta función donde obtengo el valor de los campos de mi lista spfx:
async getFieldOptions(){ const optionDrop: IDropdownOption[]= []; const variable: IEleccion = await sp.web.lists.getByTitle("Groups").fields.getByTitle("Sector").get() let items: IListItem[] = []; variable.Choices.forEach(vari=>{ optionDrop.push({key: vari, text: vari}) }) return optionDrop }
Luego quiero obtener esos valores para insertarlos en un Dropdown html, pero obtengo un error porque mi función devuelve una promesa y las "opciones" requieren un 'IDropdownOption[]' y no sé cómo resolverlo:
<Dropdown options={ListGroupService.getFieldOptions()} />
Utilice useState y useEffect.
const Component = () => { const [options, setOptions] = useState<IDropdownOption[]>(); useEffect(() => { ListGroupService.getFieldOptions().then(setOptions); }, []) if(!options){ return <>Loading...</> } <Dropdown options={options} /> }