react-native 打包后,APP显示 Invariant Violation: Tried to register two views with the same name RNCViewPager



  • react-native 打包后,APP显示 Invariant Violation: Tried to register two views with the same name RNCViewPager

    zz.png

    求助该如何解决



  • 从0.61开始内核才移除viewpager
    0.61之前,内核内仍然保留有viewpager,此时如果你同时调用(不管是你自己调用还是第三方组件调用)内核版本和社区版本,则两者会报重名冲突



  • @晴明 该如何解决呢



  • @晴明 降低react-native版本为0.58.6后没报这个错误了



  • @jqiong 请问我解决办法了吗,除了退版本



  • @wulala1997 你如果能读懂我在说什么,很显然就能得出解决方案

    1. 要解决冲突必然是只用一方而放弃另一方
    2. 怎么放弃那就看自己实际需要,为将来考虑那一般是考虑有人管的一方(社区版本)
    3. 决定了选择哪个版本,接下来就得找实际调用的代码,谁在import或者require弃用的版本(怎么搜索和排查那得你自己想办法),然后去把那个代码自己改过来
    4. 如果引用弃用代码的是第三方(node_modules),那么你修改的代码就有一个问题,不好保存(因为一般我们不把node_modules上传到git),所以此时需要用patch-package或者自己fork一份,甚至是拷贝到自己的源代码中。当然这都是工程方面的细节问题。所以此时也要考虑这个库将来还有兼容问题的话谁来维护,应该进一步考虑是否有替代品。


  • 谢谢晴明老师,我已经在考虑舍弃一方了,只是想问一下能否有兼得的方案.



  • @wulala1997 兼得有何意义?


Log in to reply