Как отключить все узлы дерева разработки Ant, если у них нет детей в React.js? - PullRequest
1 голос
/ 09 марта 2019

Итак, у меня есть эта функция renderTreeNodes ... и отключено привязано к this.state.isTreeDisabled, однако только узлы дерева, у которых есть дочерние элементы, будут отключены на время операции AJAX. Я прикреплю снимок экрана под кодом. Если кто-нибудь знает, как решить эту проблему, я буду признателен.

renderTreeNodes(data) {
  if(data === undefined) return [];
  return data.map(item => {
    if (item.children) {
      return (
        <TreeNode title={item.title} key={item.key}
                  dataRef={item} disabled={this.state.isTreeDisabled}
        >
        {this.renderTreeNodes(item.children)}
        </TreeNode>
      );
    }
    return (<TreeNode {...item} dataRef={item} />);
  });
}

Как вы видите ... все они являются объектами TreeNode ... но по какой-то причине ... только те 2, у которых есть дочерние элементы, затенены.

highlighted, selectable nodes while disabled

1 Ответ

1 голос
/ 09 марта 2019

Извините, ребята ... Я слишком долго смотрел на другой код ... Я полностью пропустил часть TreeNode, не относящуюся к детям, внизу ... Я просто добавил disable={this.state.isTreeDisabled} к ней иблам ... работает

renderTreeNodes(data) {
  if(data === undefined) return [];
  return data.map(item => {
    if (item.children) {
      return (
        <TreeNode title={item.title} key={item.key}
                  dataRef={item} disabled={this.state.isTreeDisabled}
        >
        {this.renderTreeNodes(item.children)}
        </TreeNode>
      );
    }
    // sigh...I didn't notice this bottom TreeNode in the recursive structure...
    return (<TreeNode {...item} dataRef={item} disabled={this.state.isTreeDisabled}/>);
  });
}

Fixed results...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...