Odd behavior when combining pn.param.ParamMethod and pn.Tabs(dynamic=True)

Consider the following:

import time

import hvplot.pandas
import numpy as np
import pandas as pd
import panel as pn
import param as pm

pn.config.throttled = True

class A(pm.Parameterized):
    data = pm.DataFrame()
    x = pm.Integer(10, bounds=(1, 100))

    @pm.depends('x', watch=True, on_init=True)
    def update_data(self):
        self.data = pd.DataFrame({'x': list(range(self.x)), 'y': np.ones(self.x)})

    def view_data(self):
        return self.data.hvplot.line(x='x', y='y')

    def view(self):
        return pn.Tabs(
            ('Object', self),
            ('Data', pn.param.ParamMethod(self.view_data)),

a = pn.panel(A().view())


The program works fine if I remove either pn.param.ParamMethod or dynamic=True but when I have both then the program does not work as expected, as in, after switching between tabs, nothing is displayed. I did get an error as well which said something about circular dependency, but I’m currently unable to reproduce that error.

How can I get the benefits of dynamic tabs and also ParamMethod?
The reason for using ParamMethod is to get the loading_indicator functionality.