react-native(mobX):如何向现有对象添加新对象

时间:2019-06-16 07:21:13

标签: javascript reactjs react-native mobx

我试图将new object添加到现有的object中。

在我的mobx Store中,我有一个包含one user的现有对象:

@observable user = {
    id: 101,
    email: 'kevin@dev.com',
    personalInfo: {
        name: 'kevin',
        address: {
            city: 'Costa Mesa',
            state: 'CA'
        }
    }
}

我想向现有对象添加另一个用户:

id: 102,
    email: 'john@dev.com',
    personalInfo: {
        name: 'john',
        address: {
            city: 'New York',
            state: 'NY'
        }

    }

我希望我的最终代码如下:

@observable user = {
    id: 101,
    email: 'kevin@dev.com',
    personalInfo: {
        name: 'kevin',
        address: {
            city: 'Costa Mesa',
            state: 'CA'
        }
    },
    id: 102,
    email: 'john@dev.com',
    personalInfo: {
        name: 'john',
        address: {
            city: 'New York',
            state: 'NY'
        }
    }
}

将另一个对象添加到现有对象的正确格式是什么?

这项工作可以吗?

updateObjectState (){

const user2 = {
  id: 102,
  email: 'john@dev.com',
  personalInfo: {
      name: 'john',
      address: {
          city: 'New York',
          state: 'NY'
      }
  }
}
  store.pressedDate = [...store.pressedDate, user2] 
}

谢谢!

1 个答案:

答案 0 :(得分:2)

您无法获得理想的结果,因为ID重复,因此它将覆盖上一个ID,将每个用户包装在对象中或使用数组

使用id作为键并放置值,要添加新用户时,只需在用户上创建新的键值对

@observable user = {
    '101':{
           id: 101,
           email: 'kevin@dev.com',
           personalInfo: {
           name: 'kevin',
           address: {
             city: 'Costa Mesa',
             state: 'CA'
           }
      }
   }
}

或者将用户作为数组添加新用户,只需在用户中推送值

@observable user = [{
    id: 101,
    email: 'kevin@dev.com',
    personalInfo: {
        name: 'kevin',
        address: {
            city: 'Costa Mesa',
            state: 'CA'
        }
    }
}]

PS -我不确定您如何使用数据,但我会采用对象方式,