Auth0 не передает реквизиты пользователя с react.js компоненты класса

#reactjs #auth0

Вопрос:

У меня есть несколько маршрутов в моем приложении, и я добавил Auth0 в Header.js (дитя App.js), чтобы пользователь мог оставаться в системе среди всех маршрутов. Я также смог получить объект поддержки пользователя Auth0 (имя, адрес электронной почты и изображение) для создания учетных записей пользователей в моей базе данных. Теперь в другом дочернем компоненте App.js (Feed.js), я пытаюсь использовать электронное письмо от Auth0 props в качестве параметра запроса для отправки запроса GET в базу данных, но каждый раз, когда я это делаю, я либо получаю сообщение об ошибке (пользователь не найден), либо не определен. Feed.js код выглядит так:

 import React, { Component } from 'react'
import axios from "axios";
import { withAuth0 ,auth0} from '@auth0/auth0-react';

class Feed extends Component {
constructor(props){
  super(props);
  this.state={
   userdata:[]
  }

}
getdata = async() => {
  await axios
    .get(`http://localhost:1177/getuser?email=this.props.auth0.user.email`)
    .then((res) => {
      this.setState({
        userdata: res.data,
      });
    });
};

  render() {
    this.getdata();
    return (
      <div>
        <img src={this.state.userdata.pp} alt={this.state.userdata.username} />
        <h1>{this.state.userdata.username}</h1>
        <h1>{this.state.userdata.email}</h1>
      </div>
    )
  }
}

export default withAuth0(Feed)
 

Итак, есть какие-нибудь идеи о том, как это сделать?

Ответ №1:

Возможно, у вас возникла ошибка, поскольку выражение, используемое в литерале шаблона, неправильно введено между знаком доллара и фигурными скобками в запросе GET.

Попробуй это:

 `http://localhost:1177/getuser?email=${this.props.auth0.user.email}`;