一输入就失败焦点

来源:7-4 添加数据处理行为(一)

张彬

2022-03-26

输入正文

const newFiles = files.map(file=>{

if(file.id===oldActiveID.current){

file.body=value;

}

return file

})

setFiles(newFiles)


这段代码会在输入一个字符后,会使编辑失去焦点

写回答

2回答

张彬

提问者

2022-03-26

看到官方文档

定义option

const autofocusNoSpellcheckerOptions = useMemo(() => {

return {

autofocus: true,

spellChecker: false,

minHeight:'515px'

};

}, []);

重写方法:

const fileChange=useCallback((fileID,value)=>{

// loop through file array to update

const newFiles = files.map(file=>{

if(file.id===fileID){

file.body=value;

}

return file

})

setFiles(newFiles)

// update unsaveIDs

if(!unsavedFileIDs.includes(fileID)){

setUnsavedFileIDs([...unsavedFileIDs,fileID])

}

},[])


0
0

张彬

提问者

2022-03-26

setFiles会导致页面重新渲染,所以这个焦点自然也就没有了,请问老师,这个要怎么解决

0
0

2024更新 Electron+React+七牛云实战跨平台桌面应用

开发一款自动云同步的 Markdown 文件管理软件

1254 学习 · 463 问题

查看课程