iframe 与 onload 问题

*每个tabpane 里面都是iframe 在添加一个tab的时候 同时重新渲染 组件 Tabs 这时候pane里面的iframe 也重新加载一次 = = 这个问题有人碰到过吗? 也可以说是react 与 iframe的兼容性问题
上面的问题 解决了 是我自己理解错误, 但是如下:*

<Tabs onChange={this.onChange} activeKey={this.getActiveKey()} type="editable-card" onEdit={this.onEdit}>
    {this.state.panes.map(pane => <TabPane tab={pane.title} key={pane.key}><iframe onLoad={this.onload} src={pane.url}></iframe></TabPane>)}
</Tabs>

onLoad函数中直接打了debugger, 如果我操作state.panes往里面push的时候, 有几个iframe 会调用有几次 onLoad, 通常的逻辑应该是我添加一个iframe调用它的onLoad 方法, 但是所有不管新增加的 还是旧的都走一次onLoad,是为什么?

阅读 12.7k
3 个回答

请问下题主解决了这个问题了吗

“父组件重新渲染触发子组件重新渲染导致ifame刷新”,至少我的理解是这个问题。我解决法子是父子组件关系改成父组件用{this.props.children}替换原子组件得位置,再在父组件得配置位置对应用双标签得写法在内部配置原子组件。
但如果iframe页面直接和route配置有关,可以保留父子组件关系,但配置改成这样的(子组件指下面这个路由配置所在文件)
<Route exact path={...} key={item.all} render={()=><iframe ......></iframe>} />

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题