React

利用Flatten State更优雅的修改 React 的 St

2021-01-31  本文已影响0人  Lia代码猪崽

一、常规方法

1. 基础数据

const items = [
  {
    id: 1,
    title: 'Hi'
  },
  {
    id: 2,
    title: 'Pig'  
  }
]

const selectedId = 1

2. 选择

选择一个 item 的常规方法:

const selectedItem = items.filter(item => item.id === selectedId)[0]

3. 更新

更新一个 item 的常规方法:

const modifiedItem = items.map(item => {
  if (item.id === selectedId) {
    return { ...item, title: 'Hello' }
  } else {
    return item
  }
})

4. 删除

删除一个 item 的常规方法:

const filteredItems = items.filter(item => item.id !== selectedId)

二、Flatten State 方法

1. 修改后的数据结构

const items = {
  '1': {
    id: 1,
    title: 'Hi'
  },
  '2': {
    id: 2,
    title: 'Pig'
  }
}

const selectedId = 1

2. 选择

const selectedItem = items[selectedId]

3. 更新

const modifiedItem = {
  ...items,
  items[selectedId]: 'Hello'
}

4. 删除

delete items[selectedId]
const filteredItems = { ...items }

Flatten State 的优点

上一篇下一篇

猜你喜欢

热点阅读