2016-05-06 111 views
1

Добавление вложенного элемента легко: конфиг просто RANGE_ADDКак добавить корневой узел

query { 
    viewer { 
    item { 
     edges { 
     node { 
      subitem { 
      edges { 
       node { 
       id, 
       title 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Добавление subitem просто потребует RANGE_ADD с ParentID равным ид item.

Однако, как добавить item, у которого нет родителя? Я пробовал использовать конфигурацию RANGE_ADD без родителя, но это не сработало.

Я чувствую, что это такая простая вещь, но я не могу найти ее в документах.

ответ

2

item имеет родителя, то есть viewer. Просто viewer может иметь один item вместо нескольких item s, так как item не является типом соединения. Поэтому, когда вы хотите добавить еще item, вы хотите:

1) заменить/обновить существующие item. В этом случае обычно используется FIELDS_CHANGE.

ИЛИ

2) принести в item, не нужно ставить в клиентском хранилище. В этом случае вы можете использовать конфигурацию мутаторов REQUIRED_CHILDREN. Проверьте отличный пример того, как использовать его в answer для другого связанного вопроса.

+0

Второй выглядит точно так же, как мне нужно. У меня нет существующего элемента (создание нового), поэтому я не могу использовать FIELDS_CHANGE – Secret

+0

Если у вас нет существующего 'item' под' viewer', и ваша мутация создает этот 'item', вы должны обновить' viewer' и использовать 'FIELDS_CHANGE'. Второй вариант не подходит для вашего прецедента, потому что он не будет обновлять клиентский магазин вновь созданным «элементом». –