Как динамически загружать данные при нажатии второго уровня?

#reactjs #antd #react-dropdown-tree-select

#reactjs #antd #реагировать-выпадающий список-дерево-выбор

Вопрос:

Я заполняю данные 2 уровня, как показано на рисунке из Rest API. У меня есть другой Rest API, который мне нужно вызвать async для заполнения третьего уровня. Например, если кто-то нажимает / разворачивает ‘Russia 1’, мне нужно запустить HTTP Get для загрузки дочерних элементов для ‘Russia 1’.

введите описание изображения здесь

Я пытаюсь использовать loadData ={this.onLoadData}, но проблема в том, что он вызывается каждый раз, даже когда я расширяю ‘RUSSIA’, т.е. уровень 1. Я хочу, чтобы он был ограничительным, чтобы он вызывался только на втором уровне. Есть ли какой-либо способ, которым я могу это сделать?

Вот пример кода https://codesandbox.io/s/festive-banzai-0zwnl

Комментарии:

1. Можете ли вы опубликовать свой код выполнения?

2. Добавлены снимки кода.

3. Пожалуйста, отправьте код для TreeSelect и приведенный выше код, нам также нужно знать, где this.state.value создается.

4. Добавлен пример кода codesandbox

5. Проблема заключается в вашем onChange методе. Для начала вам не хватает логики выборки данных.

Ответ №1:

Чао, вы могли бы поставить if на основе value и определить, какой тип GET вы хотите вызвать. Что-то вроде:

     onChange = (value) => {
      console.log(value);
      if (value === "2") {
         console.log("HTTP Get data Russia-1");
      } else if (value === "3") {
         console.log("HTTP Get data Russia-2");
      }
      this.setState({ value });
    };
  

Здесь ваш код изменен.