Я младший бэкэнд-разработчик, но использую библиотеку реагирования в своих проектах-клонах.
После обновления сценария реагирования я начал получать много ошибок в своем проекте. Я решил некоторые из них, как я могу их решить или игнорировать их
Ошибки очень понятны. Добавьте свойства в свой массив зависимостей useEffect и убедитесь, что ваш filter действительно что-то возвращает.
@GeekyQuentin Какую строку ошибки я должен показать?
Не строка ошибки, покажите строку 55 в вашем коде
@GeekyQuentin Я добавил изображение
Да, поэтому проблема в том, что код внутри оператора else может быть не прочитан и, следовательно, может ничего не возвращать, добавьте возвращаемое значение по умолчанию, которое будет возвращено, если ни одно из условий не удовлетворяет
@GeekyQuentin Я очень хорошо понимаю, спасибо. Так что же вызывает эту ошибку? В React Hook useEffect отсутствует зависимость:
также почему я получаю эти ошибки при обновлении пакета
Можете ли вы добавить свой код useEffect() и для чего вы сортируете CommentLists?
@GeekyQuentin Я сделал систему комментариев на YouTube. Я перечислил комментарии. Я написал такую функцию, чтобы редактировать комментарий



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Второй параметр использованиеЭффект — это массив зависимостей. Когда одна или несколько зависимостей изменились по сравнению с последним рендерингом, эффект будет отозван. Вы получаете эту ошибку, потому что не включили все необходимые переменные или функции в свой массив зависимостей, что может привести к устаревшим данным и неожиданному поведению.
Например, в вашем хуке в PostBody.jsx отсутствует зависимость params.id. Исправление состоит в том, чтобы просто добавить значение в массив зависимостей:
// PostBody.jsx
useEffect(() =>
{
// Your code here
}, [params.id, ...yourOtherDependencies]) // Add params.id to your dependency array
Сделайте то же самое для крючков, которых не хватает getAction и allComments.
Что касается ошибки filter, вы не возвращаете значение в первом условии:
const newCommentArr = CommentLists.filter((comment, index) =>
{
if (newComment._id === comment._id)
{
indexValue = index
// You need to return a value!
}
else
{
return newComment._id !== comment._id
}
})
Значение, которое вы возвращаете, зависит от того, для чего вы это используете. Вы можете просто изменить свой код на:
const newCommentArr = CommentLists.filter((comment) => newComment._id === comment._id)
или
const newCommentArr = CommentLists.filter((comment) => newComment._id !== comment._id)
в зависимости от того, для чего вы это используете.
`useEffect(() => {fetchSinglePost(params.id) }, [params.id])` это устранило ошибку, но `useEffect(() => {dispatch(fetchSinglePost(params.id)) }, [dispatch] )` почему это неправильно
и useEffect(() => { allComments() }, []) Как вы думаете, что я должен дать здесь, таким образом, ошибка действительно решается
Просто добавьте функцию allComments в массив зависимостей. useEffect(() => { allComments() }, [allComments])
Прошу прощения, но это выдает новую ошибку. Функция allComments изменяет зависимости useEffect Hook (строка 122) при каждом рендеринге. Переместите его внутрь обратного вызова useEffect. В качестве альтернативы, оберните определение «allComments» в собственный useCallback() Hook react-hooks/exhaustive-deps как решить (:
Если это так, вам нужно определить и вызвать функцию внутри useEffect, использовать useCallback или изменить свою архитектуру. Это тема другого вопроса. Если этот ответ помог решить некоторые проблемы, подумайте о том, чтобы принять его и начать новый вопрос.
наконец-то я разобрался, пишу params.id,CommentLists и заканчиваю (: Надеюсь, это правда
Чтобы получить помощь, чтобы узнать вашу ошибку линтинга, вы можете настроить ESLint в своем проекте. Или вы можете легко получить советы от расширения VSCode.
Когда он говорит об отсутствии зависимости, добавьте их ко второму параметру
useEffect, например[getAction, params.id, allComments]. Можешь показать свойLine 55?