0

我最近开始使用 mobx-state-tree 并且我有一个实际问题。

我有一个模型,它有一个types.identifier字段,这是资源的数据库 ID,当我查询现有的东西时,它会被填充。

但是,当我创建一个新实例时,按照Michel 在 egghead 上的示例,我需要将初始状态传递id给我MyModel.create()的初始状态,但是,只有在我将创建发布到 API 并获取结果创建的资源。

我已经使用 mobx-state-tree 搜索了一个简单的 crud 示例,但找不到一个(建议?)。

这里的最佳做法是什么?我应该做一个 `MyModel.create({ id: 'foobar' }) 并在我发布到 API 时将其清除(并在我从 API 获得响应后更新实例)?

4

1 回答 1

0

这是 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() })
于 2018-11-16T00:46:06.343 回答