areslabs / alita

一套把React Native代码转换成微信小程序代码的转换引擎工具。我们不造轮子,不发明新框架,只是提供工具把RN扩展到微信小程序端。
https://areslabs.github.io/alita
MIT License
1.96k stars 130 forks source link

自定义组件或第三方组件导入的名称如果和小程序原生组件名一样的话,编译默认加上"WX"前缀 #68

Closed canfoo closed 4 years ago

canfoo commented 4 years ago

如果自定义组件或第三方组件导入的名称如果和小程序原生组件名一样的话,小程序因为组件节点不会退化问题,会将此时的组件也渲染成原生组件,从而导致样式、属性上会被影响。

例如,有一个第三方组件为 @ss/ice ,某一个页面使用为:

import {Button} from '@ss/ice'

...
...

<Button>我是一个按钮</Button>

以上情况,由于 Button 这个名称刚好对应小程序原生Button组件的名称一样,所以 @ss/ice 里的 Button 就会被 小程序原生Button影响到样式、属性等问题。

ykforerlang commented 4 years ago

感觉 可以更近一步, ReactNative官方组件, 自定义组件, npm组件都可以执行同样的这个重命名逻辑。 以前的代码,只特殊处理了RN官方组件 ,可以再来一个pr把RN的特殊处理 也去掉,执行这一个逻辑 😄

canfoo commented 4 years ago

感觉 可以更近一步, ReactNative官方组件, 自定义组件, npm组件都可以执行同样的这个重命名逻辑。 以前的代码,只特殊处理了RN官方组件 ,可以再来一个pr把RN的特殊处理 也去掉,执行这一个逻辑 😄

这个,等这个pr没问题后,我再给来调整一下哈