【问题标题】:How to destructure a json object into another json object?如何将一个 json 对象解构为另一个 json 对象?
【发布时间】:2021-08-03 13:56:39
【问题描述】:

我的项目使用 React 和 Redux。在我的一个组件中,我从 API 获取一些数据。它看起来像这样,

{
"refresh": "some token",
"access": "some token",
"isStudent": true,
"user": {
    "username": "xyz",
    "first_name": "xyz",
    "last_name": "xyz",
    "email": "some email id",
    "groups": [
        2
    ],
    "id": 11
   }
}

这个动作看起来像,

function login(data) {
 return {
  type: 'LOGIN',
  access: data.access,
  refresh: data.refresh,
  isStudent: data.isStudent,
  username: '',
  first_name: '',
  last_name: '',
  email: '',
 };
}

从 API 获取的准确 json 格式被传递到操作的data, Redux State 的格式类似于,

 const state = {
  isLogged: false,
  jwt: '',
  refresh: '',
  isStudent: true,
  username: '',
  email: '',
  first_name: '',
  last_name: '',
 };

我可以在我的操作函数中破坏data 吗? 像这样的,

function login(data) {
 return {
 type: 'LOGIN',
 access: data.access,
 refresh: data.refresh,
 isStudent: data.isStudent,
 {username,first_name,last_name,email}:data.user,
 };
}

【问题讨论】:

    标签: json reactjs redux


    【解决方案1】:

    你不能按照你的想法直接解构到你的返回对象中。但是您可以解构对象外部的嵌套数据并利用对象属性简写:

    function login(data) {
      const { access, refresh, isStudent, user: {
        username, first_name, last_name, email
      } } = data;
    
      return {
        type: 'LOGIN',
        access,
        refresh,
        isStudent,
        username,
        first_name,
        last_name,
        email
      };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 2016-06-07
      • 2017-09-13
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多