Как присвоить значение глобальной переменной в методе выборки в React Native? - PullRequest
0 голосов
/ 19 июня 2020

Я создаю собственное приложение для реагирования и получаю данные из API. Мне нужно назначить определенные c данные в глобальную переменную. Это означает, что мой API возвращает JSON данные, например {user_Id: "1 'user_name:' ab c 'user_email:' abc@gmail.con '}. Мне нужно назначить user_Id в глобальную переменную, чтобы получить доступ к ней на всех моих экранах. .

Это то, что я пробовал;

componentDidMount() {
    const arrFinal = [];
    const {userDel} = this.state;
    fetch('my API url')
      .then(response => response.json())
      .then(responseJson => {
        // console.warn(responseJson);
        arrFinal.push(responseJson);
        arrFinal.map((item, index) => {
         global.UserID = item.user_Id
      })
      .catch(error => {
        console.error(error);
      });
   console.error(global.UserID)
  }

Но здесь ничего не будет печататься на консоли. Как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 19 июня 2020

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

componentDidMount() {
    const arrFinal = [];
    const {userDel} = this.state;
    fetch('my API url')
      .then(response => response.json())
      .then(responseJson => {
        // console.warn(responseJson);
        arrFinal.push(responseJson);
        arrFinal.map((item, index) => {
         global.UserID = item.user_Id
         console.error(global.UserID)
      })
      .catch(error => {
        console.error(error);
      });
   // console.error(global.UserID)
  }

или:

async componentDidMount() {
        const arrFinal = [];
    const { userDel } = this.state;
    const response = await fetch('my API url');
    const responseJson = await response.json();
    // console.warn(responseJson);
    arrFinal.push(responseJson);
    arrFinal.map((item, index) => {
      global.UserID = item.user_Id;
      console.error(global.UserID);
    });
    console.error(global.UserID);

  }

...