[错误] 删除和复制帧问题
作者: Kitenite创建于 2024年12月26日更新于 2026年1月19日
标签buggood first issue
描述错误 我首先注意到,如果我们有 3 个或更多的帧,并且我尝试删除第二个,第三个将会取代第二个,并保留其尺寸和所有内容。 我通过设置尺寸和重新设置 webview src 来解决这个问题,每当对帧组件进行设置时,都会使用效果。 但我无法解决的问题是 webview 问题。 当我们删除第二个帧时,第二个帧的 webview 将成为第三个帧的 webview,并被移动。 因此,问题在于,你无法再选择帧,因为 webview id 和帧 id 不匹配,我通过将 webview id 更改为新的帧 id 来解决这个问题。 但主要问题是 webview 导航历史记录。 让我们假设在第三个帧的 webview 中,我导航到了其他页面并导航回去,那么 webview 仍然可以向前。 但当我删除第二个帧,第二个帧的 webview 成为第三个帧的 webview 时,导航历史记录消失了,我再也无法向前导航了。 我试图通过获取第三个帧的 webview 并将其设置为 webviewRef.current 来解决这个问题,这确实解决了这个问题,但出于某种原因,它仍然不允许我选择或与该 webview 交互。 这是一个重要的信息,可能不太清楚。 所以我将告诉你如何重现它。 步骤 1: 打开一个新项目,并运行它 步骤 2: 复制主帧,然后复制复制的帧 步骤 3: 将所有三个帧设置为不同的尺寸和设备,假设为 iPhone、iPad 和 MacBook 步骤 4: 在第三个帧中,通过更改 URL 栏或其他方式导航到其他链接,然后使用后退按钮导航回上一页 步骤 5: 删除第二个帧,你会注意到第二个帧的尺寸将被应用到第三个帧(如果你使用我的 webview 实现分支,我已经解决了尺寸问题) 步骤 6: 你会注意到,对于第三个帧,它变成了删除第二个帧后的第二个帧,将不再有向前按钮,因为它使用了删除帧的 webview 和导航历史记录。
内容来源: onlook-dev/onlook