Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(babel-plugin-transform-react-jsx-to-rn-stylesheet): 如果style为array,需要转换为Object #11476

Closed
wants to merge 5 commits into from

Conversation

biorz
Copy link
Member

@biorz biorz commented Mar 18, 2022

这个 PR 做了什么? (简要描述所做更改)
在rn端的babel-plugin-transform-react-jsx-to-rn-stylesheet中, 会将className解析为style,在某些场景下可能产生问题。
例如:

function demo () {
    return <ChildComp className="header1 header2" style={{color: ‘black’}}/>
}
function ChildComp ({ style }) {
    return <View style={{...style, color:  'red'}}/>
}

当子组件需要操作父组件传递的style时, 在rn端中style的类型为array,其他端中为object,如果不对rn做单独处理会导致样式失效。(较难排查)
该变更将style转为object,保持各端操作的一致性。

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue id #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 涉及以下平台:

  • 所有小程序
  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 字节跳动小程序
  • QQ 轻应用
  • 京东小程序
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)

jian.sun1 and others added 4 commits August 20, 2021 15:41
…y,需要转换为Object

在 h5,小程序中style不能为数组类型,当需要在子组件接收style并操作时, 如
<ChildComp style={{...parentStyle, color: 'red'}}>,
在rn中,parentStyle会作为数组被解构,导致样式失效。
@taro-bot2
Copy link

taro-bot2 bot commented Mar 18, 2022

欢迎提交 PR~ Taro 非常感谢您对开源事业做出的贡献!🌷🌷🌷

一般 PR 会在一到两周内进行 review,成功合入后会随下一个版本进行发布。

Review 需要耗费大量时间,所以请遵循以下规范,协助我们提高 review 效率🙏🙏🙏

  1. 详细介绍 PR 的背景(非常重要,例如解决了什么问题,该问题如何复现等)
  2. 确保 CI 顺利运行。
  3. 最好能提供对应的测试用例。

为了更好地进行沟通,请加入 Taro 开发者微信群:

@biorz biorz closed this Mar 18, 2022
@biorz
Copy link
Member Author

biorz commented Mar 18, 2022

未合并最新代码,从新发起 pr

shinken008 pushed a commit that referenced this pull request Mar 21, 2022
…,需要转换为object #11476 (#11486)

* feat(babel-plugin-transform-react-jsx-to-rn-stylesheet): 当style为array,需要转换为Object

* feat(babel-plugin-transform-react-jsx-to-rn-stylesheet): 还原test引入路径

Co-authored-by: jian.sun1 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants