Closed guxingke201 closed 5 years ago
你出现这个错误说明配置有误,创建 taro-ui 组件的 nerv 引用和你主应用的 nerv 不是同一个 nerv。如果 nerv 连 taro ui 都跑不了,那你在 taro ui 的官网就不能预览组件,taro-ui 的测试用例也跑不了。
还没有用taro-ui,只是用了别名替换,把react和react-dom替换成nervjs
请问你用的哪个脚手架,是怎么设置的 alias?
公司内部的脚手架,有三个,分别报不同的异常。我试试用react-create-app整理一个可以重现demo给你
先来一个简单的,切换到react-route-5分支,nervjs和react-route5一起用有点问题
https://github.com/guxingke201/react-to-nervjs/tree/react-route-5
Route
要用 Switch
包起来。
如果你用 react-router@4 的话就没这个限制,react-router@5 Route 的机制有一些变化,需要框架可以处理数组类型的组件,但是 Nerv 还不支持 fragment,所以跑不了。
切换到gmc分支,react没问题,nervjs报异常 https://github.com/guxingke201/react-to-nervjs/tree/gmc
公司内部三代脚手架,一代和二代先不整理了,有需要可以再整理出来
Routes 的组件很难判断里面干了什么,如果能有源码的话比较方便 debug。
@yuche 对比了react和nervjs,发现nervjs是从state.value里拿数据,react不是,这个能改吗?
state
这样在什么样的情况下会造成无法工作?
感觉和这里的代码有关系,我问问开发这个组件的同事
问过了,同事那边的定位说和数据流没有关系,初步定位和react-router有关系
同事那边没找到原因,但是把react-router升级到5就解决了
没有解决,出现其他异常:
@yuche 请看这个分支,nerv使用connected-react-router@6x和react-loadable报异常,单独使用connected-react-router@6x不会报异常 https://github.com/guxingke201/react-to-nervjs/tree/connected-react-router-6x
换了一个思路,用react替换掉taro-ui里nerv,并处理了taro-ui里style样式不兼容react语法的问题,再从@tarojs/webpack-runner挖些配置出来,最终实现taro-ui可以成功运行在react脚手架里
把react-router升级到5,ie8下能正常工作吗
Nerv 提供了比 React 更好的浏览器兼容性和更高的性能,与此同时也不会放弃 React 庞大的生态系统。兼容 React 生态系统是我们开发 Nerv 的重要目标之一。 试过几个脚手架,只是改了别名,都不能用。构建正常,运行报异常。做这个实验的目的是想用taro-ui,可惜的是,连nervjs这关都过不来