Immutabillity-helper - как обновить это значение?

У меня есть объект json, хранящийся в "aggRequest", это мой json

{
    "state":{
       "controllerStates":[
       ],
       "rulesetStates":[
          {
             "rulesetContext":{
                "dialog_stack":[
                   {
                      "dialog_node":"root"
                   }
                ],
                "dialog_turn_counter":1,
                "dialog_request_counter":1,
                "_node_output_map":{
                   "node_1_1504607088493":[
                      0
                   ]
                },
                "branch_exited":true,
                "branch_exited_reason":"completed"
             },
             "convId":"XXXX",
             "modelRef":"XXXX"
          }
       ],
       "selfCallCount":0,
       "sysTurnCount":2,
       "userTurnCount":2
    },
    "context":{
       "conversationContext":{
          "brand":"XXXX",
          "channel":"XXX"
       },
       "userData":{
          "tokens":[
          ]
       }
    },
    "XXXXX":"2.0",
    "XXXXX":"XXXXX",
    "XXXXX":"XXXXX",
    "XXXXX":"XXXXX",
    "XXXXX":"XXXXX",
    "turnStart":"2018-08-10T15:21:36.075Z",
    "turnEnd":"2018-08-10T15:21:36.076Z"
 }

Я пытаюсь установить TurnEnd на новую дату, используя момент, дата создается правильно, и я считаю, что моя функция верна -

    const update = require('immutability-helper');

    function updatePropertyValue() {
    const momentDateChange = getRunDateAsString();
    update(aggRequest, {
          $set:
            {
            turnEnd: `${momentDateChange}`,
            },
      });
     console.log(aggRequest)
}

Когда я просматриваю журнал addRequest console.log, дата не обновлялась ...

У кого-нибудь есть идеи?

Спасибо

Что такое код функции update?

codtex 10.08.2018 16:00

С чего вы взяли, что ваша функция верна? Какие тесты он прошел?

PM 77-1 10.08.2018 16:01

Используйте Object.assign, чтобы изменить объект.

Majid Akbari 10.08.2018 16:01

Я использовал его в другом проекте, и он работал нормально .... так что я просто думаю, что мой путь json не кажется правильным, для обновления просто требуется imutability-helper, я обновлю свой код ..

Karl 10.08.2018 16:17

Мне сказали, что использование immutability-helper было лучше, чем использование Object.assign ..

Karl 10.08.2018 16:18
0
5
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вся идея неизменность в том, что вы не может изменить данные. Вместо этого вы создание нового. Как в примере ниже:

const update = require('immutability-helper');

const data = {
  "turnEnd":"2018-08-10T15:21:36.076Z"
};

const newData = update(data, { $set: { turnEnd: 'voala!' } });

console.log(data); // it is immutable, right?
console.log(newData); // it is new version of the data

Чтобы решить эту проблему, измените свой код, чтобы использовать обновленные (новую версию) ваших данных:

const updateAggRequest = update(aggRequest, { $set: { turnEnd: momentDateChange } });

Другие вопросы по теме