- 最小化原则
- 不要重复
- 有些数据可以根据已有的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]) }