Office Fabric UI Reactを使用しています。オブジェクトContextualMenu
で使用されるを作成したい。Persona
この例では、ContextualMenu を直接使用して、任意の要素にアタッチする方法を示しています。残りの例では、Fabric Button コンポーネントを介して ContextualMenu を使用しています。
ContextualMenu
Microsoft は任意のオブジェクトにa を適用する方法の例を提供していますが、オブジェクトでは機能しないようですPersona
。Persona
コンポーネントにはプロパティがなく、プロパティへの参照のref
割り当てがcomponentRef
機能していないようです。
コンポーネントにはインターフェイスPersona
から継承されたプロパティがあるようですが、オプションの文字列を で使用する方法がわかりません。HTMLAttributes<T>
contextMenu?: string;
ContextualMenu
const AppHeaderProfile: React.FunctionComponent<IAppHeaderProfileProps> = () => {
const personaRef = React.useRef(null);
const [showContextualMenu, setShowContextualMenu] = React.useState(false);
const onShowContextualMenu = useConstCallback(() =>
setShowContextualMenu(true)
);
const onHideContextualMenu = useConstCallback(() =>
setShowContextualMenu(false)
);
const menuItems: IContextualMenuItem[] = [
{
key: "profile",
text: "My Profile",
onclick: () => console.log("My Profile clicked")
}
];
return (
<div className="app-header-profile">
<Persona
className="user"
componentRef={personaRef}
size={PersonaSize.size32}
onClick={onShowContextualMenu}
/>
<ContextualMenu
items={menuItems}
target={personaRef}
hidden={!showContextualMenu}
onItemClick={onHideContextualMenu}
onDismiss={onHideContextualMenu}
/>
</div>
);
};