添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

引言

最近在调试钉钉/企业微信时发现一个问题,在ios上使用返回键时,上一页的内容不执行js代码,导致react的生命周期,包componentDidMount都不执行,由于这两个平台都没有开发者工具,无法进行调试着实废了一番功夫。

最近在开发钉钉/企业微信内嵌第三方页面时,使用返回时,会导致页面白屏问题,问题比较棘手,花了3-4day用来定位问题,期间走了一些弯路。

如上图,页面上有两个含有滚动条的DIV,一个是顶部的下拉modal,一个是body中的列表,但点击到详情的时候(第三张图),然后再点击返回,这个时候,顶部的下拉modal中就会有部分内容不限时,如图二,其实是有内容的,这个时候,只要将body中的内容滚动一下,modal的内容就都出来了。

  • 以下是分析过程:

    数据问题

    看到问题后第一个怀疑的就是数据和代码结构问题,导致数据被覆盖或者没恶意截取的前11个,以为切换不同的账号,发现每次都显示前11个,后面的不显示,代码如下

      // 渲染全部标签
      renderALlTags = () => {
        const { currentTag, activeIndex, selectTabIndex } = this.state;
        const { backlogTagList } = this.props;
        const showTagList = backlogTagList?.[activeIndex === 0 ? 'pendingList' : 'doneList'] || [];
        return (
          <div className={style.tagList}>
            {showTagList.map((item) => {
              return (
                  className={`${style.tagItem} ${
                    Number(currentTag) === item.tag && selectTabIndex === activeIndex
                      ? style.active
                      : ''
                  }`}
                  key={item.tag}
                  onClick={() => this.handleTagChange(item.tag)}
                  {item.tagName} {filterNum(item.total)}
                </div>
            })}
          </div>
    

    check代码发现和上面的没有关系。
    然后使用强制滚动,发现代码压根就没有执行,连console都没有打印。。。。

    运行环境问题
  •