Dash Table - component parameter 'data' not getting updated via callbacks

Hi all,

I am new to Dash and have been working on Dash Tables for a project. Dash table seems to work when parameters are declared in the app layout but doesn’t seem to update via callbacks, specifically the ‘data’ parameter. All other parameters such as ‘columns’, ‘style_table’, ‘n_fixed_columns’, etc. get updated via callbacks. Snippet given below

In app layout -

dash_table.DataTable(id='table')

Callbacks -

@app.callback(
     dash.dependencies.Output('table', 'columns'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_columns(n_clicks, json_frame):
    df = pd.read_json(json_frame, orient='columns')
    df.index = pd.to_datetime(df.index).time
    df = df.transpose()
    columns = [{"name": i, "id": i} for i in df.columns]
    columns.insert(0, '')
	
    return columns
	
@app.callback(
    dash.dependencies.Output('table', 'data'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_rows(n_clicks, json_frame):
    df = pd.read_json(json_frame, orient='columns')
    df.index = pd.to_datetime(df.index).time
    df = df.transpose()
    data = df.iloc[0:3, :].to_dict("rows")
	
    return data
	
@app.callback(
    dash.dependencies.Output('table', 'style_table'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_stt(n_clicks, json_frame):
	
    return {'minWidth': '97%', 'margin-left':'1.5%'}
	
@app.callback(
    dash.dependencies.Output('table', 'n_fixed_columns'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_nfc(n_clicks, json_frame):
	
    return 1
	
@app.callback(
    dash.dependencies.Output('table', 'style_cell'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_stc(n_clicks, json_frame):
	
    style_c = {
				# all three widths are needed
				'minWidth'		: '80px'	, 'width': '80px', 'maxWidth': '80px',
				'whiteSpace'	: 'no-wrap'	,
				'overflow'		: 'hidden'	,
				'textOverflow'	: 'ellipsis',
				'textAlign'     : 'center'
			}
    return style_c
	
@app.callback(
    dash.dependencies.Output('table', 'css'),
    [dash.dependencies.Input('button_analyze', 'n_clicks')],
	[dash.dependencies.State('hidden_div_analysis_frame', 'children')]
)
def update_analysis_table_css(n_clicks, json_frame):
	
    css_t = [{
				'selector': '.dash-cell div.dash-cell-value',
				'rule': 'display: inline; white-space: inherit; overflow: inherit; text-overflow: inherit;'
			}],	
    return css_t

Any help is very much appreciated!

PS : Declaring data=[{}] in app layout doesn’t help either