使用 SharePoint spfx、React 和带模板的 Get 组件的 Graph Toolkit 工作示例

Working example for Graph Toolkit using SharePoint spfx, React and Get component with template

我正在尝试在我的 SharePoint spfx Web 部件解决方案中使用 Microsoft Graph 工具包,更具体地说是 React 版本 (@microsoft/mgt-react)。

我已经成功地导入了包,并且还正确地呈现了控件。

不过,我现在正尝试根据控件的结果呈现控件。像这样:

const MyPerson = (props: MgtTemplateProps) => {
      const { person } = props.dataContext;
      return <Person userId={person.userPrincipalName}></Person>;
    }

这里是控件:

      <Get resource={`/groups/${this.props.groupid}/members`}>
        <MyPerson template="value" />
      </Get>

没有渲染出来。 有人可以帮我解决这个问题吗?

谢谢!

更新工作样本:

  public render(): React.ReactElement<IMemberListProps> {

const LoadingPerson = (props: MgtTemplateProps) => {
      return <div><Spinner size={SpinnerSize.large} label="Loading members..." /></div>;
    };

const MemberPerson = (props: MgtTemplateProps) => {
      const person = props.dataContext;
        return <div className={styles.memberRow}>
          <Person userId={person.userPrincipalName} view={PersonViewType.twolines} fetchImage={true} showPresence={true}
            personCardInteraction={PersonCardInteraction.hover} line2Property="mail"></Person></div>;
    };

    return (
      <div>
        <Get resource={`/groups/${this.props.groupId.toString()}/members/microsoft.graph.user/?$count=true&$orderby=displayname`} >
          <MemberPerson template="value" />
          <LoadingPerson template="loading" />
        </Get>
      </div>
    );
}

props.dataContext 没有人物 属性,而是人物对象本身,请尝试将您的 MyPerson 定义更改为:

const MyPerson = (props: MgtTemplateProps) => {
  const person = props.dataContext;
  return <Person userId={person.userPrincipalName}></Person>;
}