我在这里使用了react hook,但我不断收到此错误。
React Hook useEffect has a missing dependency: 'notes'. Either include it or remove the dependency array. You can also do a functional update 'setNotes(n => ...)' if you only need 'notes' in the 'setNotes' call react-hooks/exhaustive-deps
useEffect(() => {
getNotes();
const createNoteListner = API.graphql(
graphqlOperation(onCreateNote)
).subscribe({
next: noteData => {
const newNote = noteData.value.data.onCreateNote;
setNotes(prevNotes => {
const oldnotes = prevNotes.filter(note => note.id !== newNote.id);
const updatedNotes = [...oldnotes, newNote];
return updatedNotes;
});
setNote("");
}
});
const deleteNoteListner = API.graphql(
graphqlOperation(onDeleteNote)
).subscribe({
next: noteData => {
const deleteNote = noteData.value.data.onDeleteNote;
setNotes(prevNotes => {
const updatedNotes = prevNotes.filter(
note => note.id !== deleteNote.id
);
return updatedNotes;
});
}
});
const updateNoteListner = API.graphql(
graphqlOperation(onUpdateNote)
).subscribe({
next: noteData => {
const updatedNote = noteData.value.data.onUpdateNote;
setNotes(prevNotes => {
const index = prevNotes.findIndex(note => note.id === updateNote.id);
const updatedNotes = [
...notes.slice(0, index),
updatedNote,
...notes.slice(index + 1)
];
return updatedNotes;
});
setNote("");
setId("");
}
});
return () => {
createNoteListner.unsubscribe();
deleteNoteListner.unsubscribe();
updateNoteListner.unsubscribe();
};
}, []);
最佳答案
在您的代码末尾有一个 }, [])
如果您希望通过更改某些 Prop 或状态来更新 useEffect
,您可以在该数组中提及它,例如 }, [props.sth])
如果您愿意每次您需要删除该空数组时都会调用 useEffect
,并且您的代码将以如下方式结束: })
关于javascript - React Hook useEffect 缺少依赖项 : 'notes' , 如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59151397/