相关平台
微信小程序
复现仓库
https://github.com/eatureide/taro3-props-bug-demo.git
小程序基础库: 2.32.0
使用框架: React
复现步骤
npm run dev:weapp直接运行即可,发现foo.js中的props始终为空
期望结果
得到props的值
实际结果
无法获取
环境信息
Taro CLI 3.6.6 environment info:
System:
OS: Windows 10 10.0.22621
Binaries:
Node: 16.19.0 - C:\Program Files\nodejs\node.EXE
npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
npmPackages:
@tarojs/cli: 3.6.6 => 3.6.6
@tarojs/components: 3.6.6 => 3.6.6
@tarojs/helper: 3.6.6 => 3.6.6
@tarojs/mini-runner: 3.6.6 => 3.6.6
@tarojs/plugin-framework-react: 3.6.6 => 3.6.6
@tarojs/plugin-platform-alipay: 3.6.6 => 3.6.6
@tarojs/plugin-platform-h5: 3.6.6 => 3.6.6
@tarojs/plugin-platform-jd: 3.6.6 => 3.6.6
@tarojs/plugin-platform-qq: 3.6.6 => 3.6.6
@tarojs/plugin-platform-swan: 3.6.6 => 3.6.6
@tarojs/plugin-platform-tt: 3.6.6 => 3.6.6
@tarojs/plugin-platform-weapp: 3.6.6 => 3.6.6
@tarojs/react: 3.6.6 => 3.6.6
@tarojs/runtime: 3.6.6 => 3.6.6
@tarojs/shared: 3.6.6 => 3.6.6
@tarojs/taro: 3.6.6 => 3.6.6
@tarojs/webpack-runner: 3.6.6 => 3.6.6
babel-preset-taro: 3.6.6 => 3.6.6
eslint-config-taro: 3.6.6 => 3.6.6
react: ^18.0.0 => 18.2.0
补充信息
问题可能出现在被转成原生小程序,从而无法获取react的props,是否有其他解决方案?
7条答案
按热度按时间shstlldc1#
为啥 react组件要加在 usingComponents里面
foo.js 直接按照 react 的写法通过 import 引入 然后
<Foo />
j2cgzkjk2#
为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后
<Foo />
因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动
pw136qt23#
同问。若是用import的方式引入,那自定义组件中的插件就会报错了(因为没办法读到)
自定义组件的config代码: usingComponents: {
'topic-layout4': 'plugin://topic/topic-layout'
},
componentPlaceholder: {
'topic-layout4': 'view'
}
5w9g7ksd4#
才反应过来,React组件是函数,用usingComponents引入的话当成原生组件了,当然没有props,这个分包异步化特性不能使用的话,就暂不升级了
7qhs6swi5#
@Chen-jj
https://tarojs.notion.site/7db4573230e14fe9bcd78ea16e3bfef2?v=dcc20c5706b04ec8b55a6d49063cc6f0&p=bcce46cbf7b94b61a9ce80650f808169&pm=s
看到是有计划补充这个特性的,请问下有没有后文了呢?
fruv7luv6#
为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后
<Foo />
因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动
在taro2中结合usingComponents和componentPlaceholder的使用,将主包的页面引用分包的组件并通过props传参,能正常渲染组件,但是在分包里的组件获取不到props数据,这种问题有遇到吗?
krugob8w7#
为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后
<Foo />
因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动
在taro2中结合usingComponents和componentPlaceholder的使用,将主包的页面引用分包的组件并通过props传参,能正常渲染组件,但是在分包里的组件获取不到props数据,这种问题有遇到吗?
不用props传,直接传,
<Foo name="bar"/>