Error while updating property ‘stroke‘ in shadow node of type: ARTShape

一、问题

发现好多人跟我一样踩坑react-native-progress与最新版本的react-native不兼容,或者使用到了react-native-community/art的Shape等组件,出现Error
while updating property ‘stroke’ in shadow node of type:
ARTShape问题,这里给大家分享下。
当然没踩坑的可以略过,给自己留点宝贵的时间去做点别的事情。

二、解决方案

如下,github issue上我也贴过了,地址:https://github.com/oblador/react-native-progress/issues/179
在这里插入图片描述

这个主要是两点: 1,新版需要额外导入react-native-community/art的package
2,不要忘记将ARTPackage注册到MainApplication中

三、facebook源码解析

3.1,这个单纯使用旧版react-native没问题。

旧版art路径为node_modules/react-native/ReactAndroid/src/main/java/com/facebook/react/views/art

在这里插入图片描述
并且可以明显看到这里使用的stroke与fill属性都是ReadableArray数据结构

3.2,新版已经开始对art进行调整,并且会逐渐从react-native从剥离

新版路径为/android/src/main/java/com/reactnativecommunity/art/ARTShapeShadowNode.java

在这里插入图片描述
要注意到这里stroke边界色值属性已经调整为String。
react-native对包的加载顺序是先加载自己的源代码(react-native包下的内容),再加载用户的插件支持模块。所以如果没有注册到MainApplication中则会使用之前react-native包下的art,自然产生了兼容性问题,ios端无此问题。
Over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流星雨在线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值