Проблемы при преобразовании компонента класса в функциональный компонент

Я попытался преобразовать следующий компонент класса demo.jsздесь в функциональный компонент поверх здесь (demo.js), и когда я пытаюсь внести изменения, я получаю сообщение об ошибке:

immutableTree is not defined

Любая помощь будет здорово.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте подробно проверим ваши строки 131 - 144:

const onChange = (immutableTree, config) => {
    immutableTree = immutableTree; // <-- why are you assigning the same var to itself?
    config = config;  // <-- why are you assigning the same var to itself?
    updateResult(); // <-- you are not passing any variables here

    const jsonTree = getTree(immutableTree);
    const { logic, data, errors } = jsonLogicFormat(immutableTree, config);
  };

  const updateResult = throttle(() => {
    setState({ tree: immutableTree, config: config }); // <-- but here you expect variables to be used
  }, 100);

Решение: Нам нужно убедиться, что наша функция updateResult получает переменные, необходимые для продолжения.

Исправленная версия:

 const onChange = (immutableTree, config) => {
    updateResult(immutableTree, config);

    const jsonTree = getTree(immutableTree);
    const { logic, data, errors } = jsonLogicFormat(immutableTree, config);
  };

  const updateResult = throttle((immutableTree, config) => {
    setState({ tree: immutableTree, config });
  }, 100);

Другие вопросы по теме