Почему при попытке обновить 
tabsFields из 
useEffect он не обновляется?
// Apollo Client запрос к GraphQL серверу
    const { data, error, loading } = useQuery(GET_ORG(props.match.params.essenceId))
    // State который не обновляется
    const [tabsFields, setTabsFields] = useState()
    // отслеживаю изменение state
    useEffect(() => {
        if (data !== undefined) {
            // перебираю массив контактных лиц
            data.org.contactPersons.map(i => {
                const ID = nanoid(8) // использую либу nanoid для генерации ID
                let obj = {}
                obj[i._id + '~' + ID + '^name'] = i.name 
                i.phone.map((j, idx) => {
                    obj[i._id + '~' + ID + '^phone-' + idx] = j
                })
                i.eMail.map((j, idx) => {
                    obj[i._id + '~' + ID + '^eMail-' + idx] = j
                })
                setTabsFields({...tabsFields, obj})
            })
        }
    }, [data])
Если не хватает каких-то фрагментов кода, добавлю.
Я пытался реализовать альтернативный вариант, но лишь поменял шило на мыло
Альтернативный вариант
// Apollo Client запрос к GraphQL серверу
    const { data, error, loading } = useQuery(GET_ORG(props.match.params.essenceId))
    // State который не обновляется
    const [tabsFields, setTabsFields] = useState({})
    // отслеживаю изменение state
    useEffect(() => {
        if (data !== undefined) {
            // перебираю массив контактных лиц
            data.org.contactPersons.map(i => {
                const ID = nanoid(8) // использую либу nanoid для генерации ID
                let obj = {...tabsFields}
                obj[i._id + '~' + ID + '^name'] = i.name 
                i.phone.map((j, idx) => {
                    obj[i._id + '~' + ID + '^phone-' + idx] = j
                })
                i.eMail.map((j, idx) => {
                    obj[i._id + '~' + ID + '^eMail-' + idx] = j
                })
                setTabsFields(obj)
            })
        }
    }, [data])