- 最小化原则
- 不要重复
- 有些数据可以根据已有的state值求出
- 使用多个state变量
App state分析
- 文件列表 (Files)
- 搜索后的文件列表 (searchFiles) =》 可以依赖 Files 筛选
- 未保存的文件列表 (unsavedFiles) =》 unsavedFileIDs [‘2’]
- 已经打开的文件列表 (openedFiles) => openedFilesIDs [‘1’,’2’]
- 当前被选中的文件 (activeFile) => activeFileID ‘1’
函数触发
<FileList
files={files}
onFileClick={fileClick} //直接写函数名即可, 参数自动传输
onFileDelete={(id)=>{console.log(id)}}
onSaveEdit={(id, value)=>{handleEditItem(id, value)}}
/>
const fileClick = (id) => {
// 设置 激活的文件id
setActiveFileId(id)
// openids
if (!opendFileIds.includes(id)) setOpendFileIds([...opendFileIds, id])
}