Изменить переменную по ссылке в хуках реакции - PullRequest
1 голос
/ 27 мая 2020

У меня есть значение, я хочу передать его функции и изменить исходное значение изнутри функции и показать его на экране ... я использую перехватчики реакции. я не хочу использовать состояние / setState, потому что значение похоже на 10 слоев в глубину json, поэтому было бы очень сложно изменить его с помощью распространения ... вот пример того, что я хочу сделать:

let data = {
 phase:{
   document:{
     name: 'Example'}
   }
} 

changeName(phase.document.name)

function changeName(name){
 name = "Changed name"
}

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

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете использовать lodash.set:

let data = {
  phase: {
    document: {
      name: "Example",
    },
  },
};

const shallowCopy = { ...data };
lodash.set(shallowCopy, `phase.document.name`, `New Changed Name`);

// You must change the reference in order to render
setState(shallowCopy);
...