gpt4 book ai didi

javascript - Normalizr - 如何生成与父实体相关的 slug/id

转载 作者:可可西里 更新时间:2023-11-01 02:09:18 25 4
gpt4 key购买 nike

如何使用 normalizr 分配与实体父项相关的 ID/slug? ?

例子:

用户调用的 API 响应:

{
id: '12345',
firstName: 'John',
images: [
{
url: 'https://www.domain.com/image0',
name: 'image0'
},
{
url: 'https://www.domain.com/image1',
name: 'image1'
}
]
}

我可以通过以下方式定义我的模式:

const image = new Schema('images');
const user = new Schema('users');

user.define({
images: arrayOf(image)
})

问题是图像没有 id 属性,所以除非我们提供 id 属性,否则 normalizr 将无法区分它们。当然,我们可以做类似的事情

const image = new Schema('images', { idAttribute: uuid.v4() });

并生成唯一标识符。

假设我们收到用户更新并且图像的名称已更新。因为我们在每次规范化中生成唯一标识符,所以我们无法识别和更新现有图像。

我需要一种方法来引用图像实体中的父实体(用户)(在其 id/slug 中,如 12345-image012345-image1 或作为一个单独的属性。

实现这一目标的最佳方式是什么?

最佳答案

idAttribute 可以是接收实体、父级和引用状态切片的键的函数:

const image = new Schema('images', {
idAttribute: (entity, parent) => `${parent.id}-${entity.name}`
});

关于javascript - Normalizr - 如何生成与父实体相关的 slug/id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com