V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hellojinjie
V2EX  ›  问与答

react-native 里 debug 模式和 release 模式,代码运行结果居然不一样

  •  
  •   hellojinjie · 2018-05-08 21:54:15 +08:00 · 3532 次点击
    这是一个创建于 2369 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是下面这段代码,用了 react-native-infinite-scroll-view 来实现无限加载的功能。

    在 debug 模式好好的,但是一编译成 release 版本,向下滑动的时候 app 就要卡住。

    有人遇到过这种情况嘛,一般大家都是怎么调试 release 版本的?

         <ListView
            refreshControl={
              <RefreshControl
                refreshing={this.state.refreshing}
                onRefresh={() => this.onRefresh()}
              />
            }
            renderScrollComponent={props => <InfiniteScrollView {...props} />}
            dataSource={this.state.dataSource}
            distanceToLoadMore={10}
            renderRow={(data) => this.getItemView(data)}
            canLoadMore={this.state.canLoadMoreContent}
            onLoadMoreAsync={this.loadMoreContentAsync}
          />
    
    5 条回复    2018-05-09 00:14:42 +08:00
    NonClockworkChen
        1
    NonClockworkChen  
       2018-05-08 22:01:16 +08:00   ❤️ 1
    个人感觉是 debug 模式,运行很慢,导致有的时候,debug 和 release 的有些代码的执行顺序和结果都是不一样的。
    我遇到过有些这样的情况,不知道你的是不是也如这种原因导致的。
    hellojinjie
        2
    hellojinjie  
    OP
       2018-05-08 22:21:38 +08:00
    @NonClockworkChen 你们无限加载一般是怎么做的?自己写,还是用现成的类库
    kimown
        3
    kimown  
       2018-05-08 23:25:10 +08:00 via Android
    @hellojinjie

    写个无限加载难度,应该比不上你贴出的代码,话说代码不是你写的吧
    wd
        4
    wd  
       2018-05-08 23:41:05 +08:00 via iPhone
    release js 代码和 native 都会混淆 你查查是不是这个问题吧
    NonClockworkChen
        5
    NonClockworkChen  
       2018-05-09 00:14:42 +08:00
    @hellojinjie 无限加载,直接用文档里提供的方法就能实现了,就是那个 onEndReachedThreshold。
    不过,这个方法 bug 挺多的,老是瞎几把回调。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2597 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.