NGXS - доступ к родительскому состоянию из дочернего состояния

У меня есть родительское состояние, состоящее из дочернего состояния:

 @State({
     name: 'parent',
     default: { parentProp : 'foo' },
     children: [
        ChildState,
     ]
 }) class ParentState {}

И детское государство

 @State({
     name: 'child',
     default: { },
 }) class ChildState {}

Я хотел бы получить доступ parentProp внутри ChildState я пробовал использовать метод общего состояния, но он создает циклическую зависимость, поскольку ParentState импортирует ChildState и наоборот.

Я пропустил простое решение?

2 ответа

Решение

Простым решением было бы поместить их в один файл, чтобы избежать циклической ссылки.

При этом я бы спросил, почему ребенок так заинтересован в родительской собственности. Возможно, это свойство может сместиться вниз, чтобы дочерний элемент или дочерний элемент могли реагировать на то же действие, которое родитель использует для установки этого свойства для захвата своей собственной копии значения.

Если вы ищете способ создания селектора между двумя состояниями, вы можете создать объединяющий селектор (см. Соответствующий раздел здесь: https://ngxs.gitbook.io/ngxs/concepts/select).

У меня точно такие же потребности, как у автора. Причина, по которой дочерний элемент может заинтересоваться родительским свойством, довольно проста. Здесь вы в основном сосредотачиваетесь на выборе части, но в моем случае она нужна мне для сохранения чистых файлов с состоянием, где я бы хотел избежать беспорядка.

Это не мой случай, но соотносится с ним :). Допустим, у нас есть основное состояние с некоторыми свойствами и некоторыми дочерними состояниями, сохраняющими более сложную структуру данных.

И теперь происходит какое-то действие, которое устанавливает какое-то значение в основном состоянии, затем происходит другое, которое устанавливает что-то в дочернем состоянии, но я хочу установить его, например, на карте с ключом в качестве значения свойства из основного состояния.

Ничего особенного ... И такая возможность, наверное, очень поможет.

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