我想知道在Outlook插件中用API调用填充下拉菜单后如何呈现它.我没有在屏幕上显示它.
基本示例:
const App () => {
let contactDropdown = <></>;
(async () => {
await Office.onReady();
const contacts = await getContacts();
contactDropdown = buildDropdown(contacts);
})();
const buildDropdown = (contacts) => {
//e.g.:
// contacts = [
// { value: 1, text: "Tim" },
// { value: 2, text: "Fred" }
// ];
return (
<div>
<label>Choose a Contact</label>
<select>
{contacts.map((option) => (
<option key={option.value} value={option.value}>
{option.text}
</option>
))}
</select>
</div>
);
};
return (
<div>
{contactDropdown}
</div>
);
}
我是否需要先使用useEffect
和STATE来加载数据?我试过这个,但它不起作用.
const [contacts, setContacts] = useState([]);
useEffect(() => {
setContacts(getContacts());
}, []);
const getContacts = async () => {
//api call here
};