Как переключать стрелки, когда дочерние элементы развернуты / свернуты в «cp-реагировать-дерево-таблица» - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь создать древовидную таблицу, используя плагин реагирования 'cp-Reaction-tree-table'.Я был в состоянии сделать таблицу отлично.Но плагин не предоставляет возможность показывать индикативные стрелки (элемент развернут / свернут)

Вот пример исходного плагина: https://jsfiddle.net/constantin_p/wzjgspe9/

  renderIndexColumn = (data, metadata, toggleChildren) => {
    return (
      <div style={{ paddingLeft: (metadata.depth * 25) + 'px'}} className="cell-wrapper">
        <span className="toggle-button-wrapper" style={{ width: '80px'}}>
          {(metadata.hasChildren)
            ? (
                <span onClick={toggleChildren}>[toggle]</span>
              )
            : ''
          }
        </span>

        <span>{data.name}</span>
      </div>
    );
  }

Я изменил его, чтобы показать индикативныйстрелы.

Но теперь возникают проблемы с переключением стрелок на основе узла, развернутого или свернутого.

Вот модифицированный код: https://jsfiddle.net/5yvgbrtk/

  renderIndexColumn = (data, metadata, toggleChildren) => {
    return (
      <div style={{ paddingLeft: (metadata.depth * 25) + 'px'}} className="cell-wrapper">
        <span className="toggle-button-wrapper" style={{ width: '80px'}}>
          {(metadata.hasChildren)
            ? (
                <span onClick={(event) => {toggleChildren(); this.arrowChange(event)}}>
                <i className="material-icons">arrow_right</i>
                </span>
              )
            : ''
          }
        </span>

        <span>{data.name}</span>
      </div>
    );
  }

   arrowChange = (event) => {
      event.target.classList.toggle('expanded')
  };

ТекущийРешение работает только тогда, когда каждый открытый узел закрыт (значки переключаются при нажатии).Это создает проблему, когда внешний узел закрывается без закрытия внутренних узлов.

Есть ли способ, которым мы могли бы определить, будут ли отображаться / скрываться дочерние узлы, основываясь на том, что я могу изменить значки стрелок.

Я знаю, что вопрос очень специфичен для плагина и не очень общий.Но любая помощь будет высоко ценится.Спасибо

1 Ответ

0 голосов
/ 01 октября 2018

На основании запроса эта функция была добавлена ​​в cp-реагировать-дерево-таблица в их последнем выпуске.

Теперь добавлен новый метод - hasVisibleChildren.проверьте и переключите стрелки.

Скрипка с обновленной функцией: https://jsfiddle.net/constantin_p/Lystd2j9/

<i className="material-icons">
   {metadata.hasVisibleChildren ? 'arrow_drop_down' : 'arrow_right' }
</i>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...