2

这是我拥有的复杂数据结构的简化版本:

const todos = [
  {done: false, text: '...', tags: [{text: '...'}, {text: '...'}]}
]

为了利用反冲的力量,我将结构分解为不同的原子族,并通过唯一的 ID 将它们链接起来:

const tag = atomFamily({...});
const todo = atomFamily({...});
const todos = atom({...});

// The state looks something like this:
// todos = ['id1', 'id2'];
// todo('id1') =  {done: false, text: '...', tags: ['id1', 'id2']}
// tag('id1') =  {text: '...'}

但是像这样打破结构会给代码增加很多复杂性。例如,当我todo向列表中添加一个新元素时,我必须遍历列表tags并创建标记原子。

同样,当我删除 a 时,todo我必须遍历所有内部tag原子并将它们也删除。嵌套越深,这就越复杂。

有没有像这样雾化深度嵌套结构的最佳实践?

4

0 回答 0