setState(state => {
const clone = deepClone(state)
clone.result.voice.month3 = voice3month;
clone.result.profit.month3 = profit3month;
return clone;
})
Чем сложнее и функциональнее фреймворк тем страшнее им пользоваться. Любое готовое решение фиксирует твои возможности тем что оно собой представляет, и любой шаг в сторону потребует больше сил чем должны были бы на это потрачены.
Тогда метод replace вам не подходит
Единственное я хз насколько эффективно джетбрейнсы с ним работают. В любом случае не забудь перекинуть свой проект в всл.