Как изменить значок раскрытия строки на пользовательскую кнопку? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу создать собственную кнопку и расширить строку, щелкнув по нему.В методе «_renderActionRow» я создаю кнопки, и если я нажимаю кнопку «Определение», я вызываю «_onTableRowExpand» и проверяю, была ли строка развернута или свернута.Метод работает отлично, если я использую кнопку по умолчанию '+', но если я вызываю его из _renderActionRow, он не работает.Любые идеи, как я могу решить эту проблему?

_renderActionRow = (record, i18n) => {
    const actionColumnBuilder = new TableActionColumnBuilder(i18n);
    if (this.state.tokensData.some(token => token.stepId === record.id)) {
        actionColumnBuilder.button(i18n.t`Retry`, {marginRight: 5}, form => {
        });//TODO
        actionColumnBuilder.button(i18n.t`Skip`, {marginRight: 5}, () => {
        });//TODO
    }
    actionColumnBuilder.button(i18n.t`Definition (${record.realizationStepId})`, {marginRight: 5}, () => {
        if (!this.state.expandedKeys.some(key => key === record.id)) {
            this._onTableRowExpand(true, record);
        } else {
            this._onTableRowExpand(false, record);
        }
    });
    return actionColumnBuilder.build();
};

    _onTableRowExpand = (isExpanded, record) => {
    const previousExtendedKeys = this.state.expandedKeys;
    const newExpandedKeys = isExpanded ? previousExtendedKeys.concat(record.id) : previousExtendedKeys.filter(key => key !== record.id);
    if (!this.state.downloadedStepIdToInstance[record.id]) {
        this._handleRealizationStepRequest(record.id);
    }
    this.setState({expandedKeys: newExpandedKeys});
};

        return (
        <div>
            {activeView === DETAILS_VIEW_NAME &&
            <div>
                <HidableCard style={{maxHeight: 250}}
                             title={i18n.t`Process steps`}
                             toggleDetailsVisibilityCallback={this.recalculateComponentHeight}
                             i18n={i18n}
                             initialShouldShowDetails={this._showProcessStepsCard}
                             ref={ref => this._processStepCard = ref}
                             component={
                                 <JiverTable tableColumnsFormat={this._getProcessStepsTableColumnsFormat(i18n)}
                                             tableFeatureChangeHandler={this._handleProcessStepTableSortChange}
                                             data={this.state.processStepData || []}
                                             i18n={i18n}
                                             expandIconAsCell={false}
                                             expandIconColumnIndex={6}//set to -1 for hide icon '+'
                                             expandedRowRender={record => this._createExpandedTables(record)}
                                             expandedRowKeys={this.state.expandedKeys}
                                             onExpand={this._onTableRowExpand}
                                             sorter={{
                                                 sortColumn: {dataIndex: processStepsSort.orderBy},
                                                 sortOrder: processStepsSort.orderDirection === 'asc' ? 'ascend' : 'descend'
                                             }}
                                             ref={ref => this._processStepTable = ref}/>
                             }/>
                                             </div> });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...