#javascript #reactjs
#javascript #reactjs
Вопрос:
Как мы вызываем рекурсивную функцию в react js, используя компонент на основе классов. перепробовал почти все способы, которыми он не принимает вызов внутренней функции.
пожалуйста, найдите приведенный ниже код,
hasValueDeep=(json, findValue)=> {
const values = Object.values(json);
let hasValue = values.includes(findValue);
values.forEach(function(value) {
if (typeof value === "object") {
hasValue = hasValue || this.hasValueDeep(value, findValue);
}
})
return hasValue;
}
приведенный выше код представляет собой функцию, которая будет вызывать ту же функцию внутри. но при компиляции кода ошибка hasValueDeep не определена.
this.hasValueDeep(value, findValue) внутри функции не вызывает ту же функцию.
помощь была бы действительно ощутимой.
заранее спасибо 🙂
Комментарии:
1. Замените обратный вызов функции функцией со стрелкой или используйте bind для этой функции внутри forEach. Или используйте простой синтаксис for, который будет работать.
Ответ №1:
Попробуйте изменить эту часть своего кода :
values.forEach((value)=> { // here
if (typeof value === "object") {
hasValue = hasValue || this.hasValueDeep(value, findValue);
}
})