How to automatically update a DynamicMap's range to match the data?

import holoviews as hv
import numpy as np

hv.extension("bokeh")


def create_curve(i):
    # depend on i
    x = np.linspace(0, 4 * np.pi * i, 100)
    y = np.sin(x + i)
    return hv.Curve((x, y))


dmap = (
    hv.DynamicMap(create_curve, kdims="i")
    .redim.range(i=(0, 2 * np.pi))
    .opts(width=800, height=400)
)
dmap

Notice here, the x range doesn’t show all the data:

Export-1711552677305

Add framewise=True to get it to auto update

Export-1711552846527