Использование DataTable с моим приложением - PullRequest
0 голосов
/ 29 мая 2018

Я использую Тире для создания панели инструментов с Python.У меня есть следующий код:

import dash
import dash_core_components as dcc
import dash_table_experiments as dte
import dash_html_components as html
from datetime import datetime as dt

app = dash.Dash()

app.layout = html.Div([
    dcc.Location(id = 'url', refresh=False),
    html.Div(id = 'page-content')
])
app.config['suppress_callback_exceptions'] = True

def get_index():
    index = html.Div([
        dcc.Link('Live Data', href='/live')
    ], className = 'row')
    return index

live = html.Div([
    html.H1('Table '),
    dcc.DatePickerRange(
            id = 'selected-period',
            initial_visible_month=dt(2018, 4, 5),
            start_date = dt(2018, 4, 22),
            end_date=dt(2018, 4, 25)
    ),
    # dte.DataTable(
    #     rows= [{}],
    #     row_selectable = True,
    #     filterable = True,
    #     sortable = True,
    #     editable = False,
    #     id = 'data-table'
    # )
])

@app.callback(
    dash.dependencies.Output('page-content', 'children'),
    [dash.dependencies.Input('url', 'pathname')]
)
def display_correct_page(pathname):
    if pathname == '/live':
        return live
    else:
        return get_index()

if __name__ == '__main__':
    app.run_server(debug=True)

Я хочу работать с dash_core_components.Link, но, похоже, он не совместим с dash_table_experiments.Когда я запускаю этот код с комментариями dte.DataTable, приложение работает нормально.Когда я пытаюсь запустить приложение с частью dte.DataTable, я получаю белый экран ... Я не понимаю, почему это происходит, так как я использовал dte.DataTable раньше, и у меня не было никаких проблем вообще.Кажется, проблема заключается в том, что я использую dcc.Link, но я не понимаю, почему это так.

Вопрос: Есть ли способ использовать dte.DataTable сdcc.Links?Если так;Как я могу изменить свой сценарий, чтобы он отображал нужный DataTable?

(я понимаю, что я могу заставить этот сценарий работать, удалив часть dcc.Link и просто запустив его, как очень простое приложение. Я хочуиспользовать ссылку, потому что я хочу объединить два разных приложения с dte.DataTable.)

1 Ответ

0 голосов
/ 30 мая 2018

Тире ожидает , что в начальном layout присутствуют все компоненты, т. Е. Вам потребуется создать пустую таблицу в макете.

Если вы добавите скрытую таблицу

html.Div(dte.DataTable(rows=[{}]), style={'display': 'none'}),

к вашему app.layout должно работать.

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