Open ShaoGongBra opened 2 months ago
这是patch,可以参考下,不过我把NativeSlot注释掉会引起其他的问题,也没有去研究这里
diff --git a/node_modules/@tarojs/shared/dist/template.js b/node_modules/@tarojs/shared/dist/template.js
index d1eafbe..0a6fa28 100644
--- a/node_modules/@tarojs/shared/dist/template.js
+++ b/node_modules/@tarojs/shared/dist/template.js
@@ -194,7 +194,7 @@ const Navigator = {
bindComplete: NO_DEFAULT_VALUE
};
const Audio = {
- id: NO_DEFAULT_VALUE,
+ // id: NO_DEFAULT_VALUE,
src: NO_DEFAULT_VALUE,
loop: DEFAULT_FALSE,
controls: DEFAULT_FALSE,
@@ -286,7 +286,7 @@ const internalComponents = {
Map: MapComp,
Slot,
SlotView,
- NativeSlot,
+ // NativeSlot,
Script,
};
new Set([
@@ -1061,11 +1061,11 @@ ${this.buildXsTemplate()}
</template>
<template name="tmpl_${level}_${nodeAlias}_focus">
- <${nodeName} ${this.buildAttribute(comp.attributes, nodeName)} id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">${children}</${nodeName}>
+ <${nodeName} ${this.buildAttribute(comp.attributes, nodeName)}${nodeName === "block" ? "" : ' id="{{i.uid||i.sid}}" data-sid=" {{i.sid}}"'}>${children}</${nodeName}>
</template>
<template name="tmpl_${level}_${nodeAlias}_blur">
- <${nodeName} ${this.buildAttribute(attrs, nodeName)} id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">${children}</${nodeName}>
+ <${nodeName} ${this.buildAttribute(attrs, nodeName)}${nodeName === "block" ? "" : ' id="{{i.uid||i.sid}}" data-sid="{{i.sid}}"'}>${children}</${nodeName}>
</template>
`;
if (isFunction(this.modifyTemplateResult)) {
@@ -1100,7 +1100,7 @@ ${this.buildXsTemplate()}
}
let res = `
<template name="tmpl_${level}_${nodeAlias}">
- <${nodeName} ${this.buildAttribute(comp.attributes, comp.nodeName)} id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">${children}</${nodeName}>
+ <${nodeName} ${this.buildAttribute(comp.attributes, comp.nodeName)}${nodeName === "block" ? "" : ' id="{{i.uid||i.sid}}" data-sid="{{i.sid}}"'}>${children}</${nodeName}>
</template>
`;
if (isFunction(this.modifyTemplateResult)) {
@@ -1123,7 +1123,7 @@ ${this.buildXsTemplate()}
if (compName === 'custom-wrapper') {
template += `
<template name="tmpl_${level}_${compName}">
- <${compName} i="{{i}}" l="{{l}}" id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">
+ <${compName} i="{{i}}" l="{{l}}"${compName === "block" ? "" : ' id="{{i.uid||i.sid}}" data-sid="{{i.sid}}"'}>
</${compName}>
</template>
`;
@@ -1144,7 +1144,7 @@ ${this.buildXsTemplate()}
`;
template += `
<template name="tmpl_${level}_${compName}">
- <${compName} ${this.buildThirdPartyAttr(attrs, this.thirdPartyPatcher[compName] || {})} id="{{i.uid||i.sid}}" data-sid="{{i.sid}}">${children}</${compName}>
+ <${compName} ${this.buildThirdPartyAttr(attrs, this.thirdPartyPatcher[compName] || {})}${compName === "block" ? "" : ' id="{{i.uid||i.sid}}" data-sid="{{i.sid}}"'}>${children}</${compName}>
</template>
`;
}
slot 节点的子节点是无效的,没有含义。skyline 使用的 glass-easel 编译器会直接视为编译错误
这是官方回复
这 3个组件你是都用到了吗? 如果没用到应该不会报错吧?
这 3个组件你是都用到了吗? 如果没用到应该不会报错吧?
audio这个我肯定没有用到呀
slot的话,我不知道什么情况下算用到
我也用了 skyline,3个组件都没有用到,base.wxml 里面只有模板自带的 block 组件,并且都没看到你说的那3个问题
我也用了 skyline,3个组件都没有用到,base.wxml 里面只有模板自带的 block 组件,并且都没看到你说的那3个问题
看看是不是没有开启 glass-easel,我是开了这个
这是官方的回复 https://developers.weixin.qq.com/community/develop/doc/0008a8e4d78898624212ffe0561000
你能给个复现这些问题的demo吗,我试了 audio 组件,模板确实id 重复了,但是这个组件已经弃用了,正常来说不用的话就没有影响。
block不支持id data-sid属性我这边没看到报错。
slot 正常也不会有,我知道的就是混合开发中 原生传子元素到 Taro 组件中可以会用到,https://docs.taro.zone/docs/taro-in-miniapp#%E4%BD%BF%E7%94%A8-slot
但是我直接用 NativeSlot 报错跟你的也不一样,不过删掉 slot 的 children 内容确实就不报错了
你能给个复现这些问题的demo吗,我试了 audio 组件,模板确实id 重复了,但是这个组件已经弃用了,正常来说不用的话就没有影响。
block不支持id data-sid属性我这边没看到报错。
slot 正常也不会有,我知道的就是混合开发中 原生传子元素到 Taro 组件中可以会用到,https://docs.taro.zone/docs/taro-in-miniapp#%E4%BD%BF%E7%94%A8-slot
~但是我直接用 NativeSlot 报错跟你的也不一样~,不过删掉 slot 的 children 内容确实就不报错了
使用这个命令创建一个项目 npx duxapp-cli create testDuxui
1 选择duxui模板
2导航到 configs/duxuiExample/index.js
取消下面这段代码的注释
renderer: 'skyline',
lazyCodeLoading: 'requiredComponents',
componentFramework: 'glass-easel',
rendererOptions: {
skyline: {
defaultDisplayBlock: false
}
},
3 使用命令 yarn dev:weapp --app=duxuiExample
启动编译,编译后打开就会看到了
这是我最近更新到Taro4的,也是同样的问题
block不支持id data-sid属性我这边没看到报错。
这个就是大一堆 invalid attribute 报错,我删掉blick的这两个属性他就好了
我启动后webview报这个错误,把 base.wxml 中的 slot 注释掉才正常渲染
这是打开 skyline 的效果
目前看主要问题就是 slot 组件里面带了children 导致报错,你用了 taro-charts 这个库,这个库会把 taro-components 中所有组件都引入,也就包含了 audio 和 slot
我启动后webview报这个错误,把 base.wxml 中的 slot 注释掉才正常渲染
这是打开 skyline 的效果
目前看主要问题就是 slot 组件里面带了children 导致报错,你用了 taro-charts 这个库,这个库会把 taro-components 中所有组件都引入,也就包含了 audio 和 slot
taro-charts这个有问题吗,我去研究下怎么改一下,block上添加属性报错这个你没遇到吗
相关平台
微信小程序
小程序基础库: 3.5.6 使用框架: React
复现步骤
开启skyline,之后主要的问题有三个 1 block不支持id data-sid属性,需要删除 2 audio模板存在重复 id 属性 3 slot模板在seykline下的报错是 Error: child nodes are not allowed for this element
期望结果
正常编译
实际结果
报错
环境信息