Как вызвать компонент по нажатию на узел из реагирующего d3-дерева - PullRequest
0 голосов
/ 02 марта 2020
        class WorkflowDesign extends React.PureComponent {
          state = {};

          componentDidMount() {
            const dimensions = this.treeContainer.getBoundingClientRect();
            this.setState({
              translate: {
                x: dimensions.width / 2,
                y: dimensions.height / 2
              }
            });
          }


          render() {
            return (
              <div style={containerStyles} ref={tc => (this.treeContainer = tc)}>
                <Tree
                  data={this.props.data}
                  translate={this.state.translate}
                  orientation={'vertical'}
                  collapsible={false}
                  directed={false}
                  onClick={(nodeData, evtData) => {
                    if (nodeData.type === 'FLOW') {
                      this.props.getFlowNodeStartId(nodeData);
                    }
                    return;
                  }}

                  allowForeignObjects
                  nodeLabelComponent={{
                    render: <CollapsedBreadcrumbs data={this.props.breadcrumbtartNodeId} />,
                    foreignObjectWrapper: {
                      y: 24
                    }
                  }
                  }

                />
              </div>
            );
          }
        }

Я пытался с [act-d3-tee] [1], но он не позволяет мне вызывать компонент внутри onclick, поэтому, пожалуйста, помогите мне, как вызвать компонент onclick с некоторыми условиями, я упомянуть выше код

Я хотел вызвать компонент onclick, который я написал функцию onclick с некоторым условием

      [1]: https://www.npmjs.com/package/react-d3-tree

1 Ответ

0 голосов
/ 04 апреля 2020

Вот как я это делаю:

    handleClick = (nodeData, evt) => {
       console.log(nodeData, evt);
     }

в дереве

    onClick={this.handleClick}
...