taro usingComponents如果配置的是react组件时,props始终为空

l3zydbqr  于 5个月前  发布在  React
关注(0)|答案(7)|浏览(77)

相关平台

微信小程序

复现仓库

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,是否有其他解决方案?

shstlldc

shstlldc1#

为啥 react组件要加在 usingComponents里面
foo.js 直接按照 react 的写法通过 import 引入 然后 <Foo />

j2cgzkjk

j2cgzkjk2#

为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后 <Foo />

因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动

pw136qt2

pw136qt23#

同问。若是用import的方式引入,那自定义组件中的插件就会报错了(因为没办法读到)
自定义组件的config代码: usingComponents: {
'topic-layout4': 'plugin://topic/topic-layout'
},
componentPlaceholder: {
'topic-layout4': 'view'
}

5w9g7ksd

5w9g7ksd4#

才反应过来,React组件是函数,用usingComponents引入的话当成原生组件了,当然没有props,这个分包异步化特性不能使用的话,就暂不升级了

fruv7luv

fruv7luv6#

为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后 <Foo />

因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动

在taro2中结合usingComponents和componentPlaceholder的使用,将主包的页面引用分包的组件并通过props传参,能正常渲染组件,但是在分包里的组件获取不到props数据,这种问题有遇到吗?

krugob8w

krugob8w7#

为啥 react组件要加在 usingComponents里面 foo.js 直接按照 react 的写法通过 import 引入 然后 <Foo />

因为是老项目,在taro2是正常运行的,升级到taro3后希望做最小限度改动

在taro2中结合usingComponents和componentPlaceholder的使用,将主包的页面引用分包的组件并通过props传参,能正常渲染组件,但是在分包里的组件获取不到props数据,这种问题有遇到吗?

不用props传,直接传, <Foo name="bar"/>

相关问题