Как назначить id/slug, связанный с родителем объекта, с помощью normalizr?
Пример:
Ответ 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
, поэтому normalizr не сможет отличить их, если мы не предоставим свойство id
. Конечно, мы могли бы сделать что-то вроде
const image = new Schema('images', { idAttribute: uuid.v4() });
и генерировать уникальные идентификаторы.
Предположим, мы получили обновление для пользователей, и имя изображения было обновлено. Поскольку мы генерируем уникальные идентификаторы в каждой нормировке, мы не можем идентифицировать и обновлять существующее изображение.
Мне нужен способ ссылки на родительский объект (пользователь) в объекте изображения (либо в его id/slug, как 12345-image0
, 12345-image1
, либо как отдельное свойство.
Каким будет оптимальный способ достичь этого?