以全局状态存储数据

时间:2019-10-29 13:52:56

标签: react-native

我想将usere_id存储为全局值状态,所以我创建了global.js

module.exports = {
    users_id: "",
 };

并将其导入post.js,那么如何将数据存储在Global.users_id中并在我想要的任何地方使用它... 我尝试过


  Login = async () => {
    const response = await fetch("http://192.168.6.107:8080/login", {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json"
      },
      body: JSON.stringify({
        username: this.state.username,
        password: this.state.password,

      })
    });
    const data = await response.json();
    console.log("data", data);
    console.log("data.suc", data.success);
    if (data.success) {
      AsyncStorage.setItem("user", JSON.stringify(data.user));
      console.log("DATAAA>>>>",data)

     const global= data.user.users_id
       const global2=    GLOBAL.users_id.setState({
       users_id:global
       })
      console.log("global",global2)
    }
    return data.success;
  };

我想从此数据中获取users_id

DATAAA>>>> Object {
 "success": true,
  "user": Array [
    Object {
      "password": "ddd",
      "username": "ddd",
       "users_id": 1,
    },
  ],
}

2 个答案:

答案 0 :(得分:2)

您可以在任何地方声明全局变量,如下所示:

global.userID = 3

// and use it Login like this

global.userID // value = 3

但是,不建议您经常这样做。也许您应该看看Redux。

答案 1 :(得分:0)

如果要在任何地方使用它,请创建一个存储和使用全局变量的变量。

global.js

let users_id = "";
...
function set_users_id(data) {
  users_id = data;
}

function get_users_id() {
  return users_id;
}

用法

import * as global from "filepath/global.js"
...
let user_id = data.user[0].user_id
global.set_users_id(user_id)
import * as global from "filepath/global.js"
alert(global.user_id) // return 1
alert(global.get_users_id()) // return 1
相关问题