Mobx-state-tree создает форму с полем types.identifier на модели - PullRequest
0 голосов
/ 07 ноября 2018

Я недавно начал использовать mobx-state-tree, и у меня есть практический вопрос.

У меня есть модель с полем types.identifier, это идентификатор базы данных ресурса, и когда я запрашиваю существующий материал, он заполняется.

Когда я создаю новый экземпляр, однако, следуя примеру , который у Мишеля есть на яйце , мне нужно передать начальный id моему MyModel.create() в начальном состоянии, однако этот идентификатор будет известен только после того, как я опубликую создание в API и получу полученный созданный ресурс.

Я искал простой пример с использованием mobx-state-tree, но не смог его найти (предложения?).

Какая лучшая практика здесь? Должен ли я выполнить MyModel.create ({id: 'foobar'}) и отсеять его при публикации в API (и обновить экземпляр после получения ответа от API)?

1 Ответ

0 голосов
/ 16 ноября 2018

Это ограничение текущего дизайна дерева mobx-state-tree. Идентификаторы неизменны .

Одна из стратегий, которую я видел, чтобы обойти эту проблему, заключается в том, чтобы хранить id вашего слоя постоянства в отдельном поле от вашего поля types.identifier. Затем вы будете использовать библиотеку типа uuid для генерации значения types.identifier:

import { v4 } from "node-uuid"
const Box = types
    .model("Box", {
        id: types.identifier,
        name: "hal",
        x: 0,
        y: 0
    })
const box = Box.create({ 'hal', 10, 10, id: v4() })
...