1

我是 SPFx 的新手,我想用 React 让当前登录的用户登录 SPFx,我确实在这里参考了一些帖子,但是找不到我一直在寻找的解决方案。

我的最终目标是获取当前登录的用户 ID,并将值存储在一个变量中,以便稍后在 RestAPI 中使用

下面是代码示例

public componentdidmount() {
  var u;
  sp.web.currentUser.get().then(
    (user) => {
      console.log(user);
      u = user.UserId;
    },
    (errorResponse) => {
      debugger;
      console.log(errorResponse);
    }
  ); //Get Current User*/

  sp.web.lists
    .getByTitle("SampleList")
    .items.select(
      "*",
      "CourseName/Title",
      "Attendee/Title",
      "Attendee/ID",
      "Status/Title",
      "Completed",
      "AttachmentFiles"
    )
    .expand("CourseName", "Attendee", "Status", "AttachmentFiles")
    .filter("Status/Title eq 'Not Started' and Attendee eq '" + u + "'")
    .top(4999)
    .orderBy("Created", false)
    .get()
    .then((response) => {
      let getdetails = response.map((item) => new EntityListItems(item));
    });
}

在调试时,我在变量 u 上得到一个未定义的值。

如果有人可以帮助我将当前登录的用户 ID 存储到一个变量中,以便我可以将值传递给 Rest 调用,我将不胜感激。

任何帮助,将不胜感激。

4

2 回答 2

2

获取用户信息的请求是异步的,它不能保证在变量 u 设置值后调用第二个请求。因此我们建议您将第二个请求放在回调中,这应该确保已经获取了用户信息。

还有一种快速获取当前用户 ID 的方法:

this.context.pageContext.legacyPageContext["userId"]

legacyPageContext 类似于_spPageContextInfo. 更多详情请参考以下博客:</p>

BR

于 2020-08-27T08:30:37.243 回答
0

我用这个:this.context.pageContext.user.email

于 2021-01-06T18:29:53.720 回答