React изменение данных в массиве

Пишу приложение на react,и столкнулся с проблемой.Есть массив обьектов, у которых есть свои вложенности, у этих вложенностей есть свои вложенности и т.д. На скрине примерная структура того как должно быть. Суть в том, что когда получим данные с бека, нужно в обьект там где value: 'value_children_2', добавить поле children(которое получаем с бека),первая часть проверки отрабатывает так как надо, проблема начинается после "else", попросту не добавляет новое значение во вложеность

        let id = allegroFields.active_id
        let filterOption = optionsAllegro.filter(el => el.value === id)
        let newOptiopns = suc.allegroCategories.data
        let modifyOptions; 

        if (filterOption.length === 1) {
            modifyOptions = optionsAllegro.map(el => {
                if (el.value === id) {
                    return {
                        ...el,
                        children: newOptiopns.map(child => {
                            return {
                                value: child.id,
                                label: child.name,
                                isLeaf: child.isLeaf,
                                fields: child?.fields
                            }
                        })
                    }
                }
                return el
            })
        } else {
            modifyOptions = optionsAllegro.map(el => {
                if (el.children) {
                    el.children.map(child => {
                        if (child.value === id) {
                            return {
                                ...child,
                                children: newOptiopns.map(child2 => {
                                    return {
                                        value: child2.id,
                                        label: child2.name,
                                        isLeaf: child2.isLeaf,
                                        fields: child2?.fields
                                    }
                                })
                            }
                        }
                        return child
                    })
                }
                return el
            })
        }
        setOptionsAllegro(modifyOptions)
    }
})

вот функция которая отвечает за эту реализацию.


Ответы (0 шт):