Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -268,13 +268,13 @@ export default function styleHelperMixin () {
let localStyle, appStyle
if (localStyle = this.__getClassStyle?.(className)) {
if (localStyle._media?.length) {
mergeResult(localStyle._default, getMediaStyle(localStyle._media))
mergeResult(localStyle, getMediaStyle(localStyle._media))
} else {
mergeResult(localStyle)
}
} else if (appStyle = global.__getAppClassStyle?.(className)) {
if (appStyle._media?.length) {
mergeResult(appStyle._default, getMediaStyle(appStyle._media))
mergeResult(appStyle, getMediaStyle(appStyle._media))
} else {
mergeResult(appStyle)
}
Expand Down
3 changes: 2 additions & 1 deletion packages/webpack-plugin/lib/platform/style/wx/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -421,8 +421,9 @@ module.exports = function getSpec({ warn, error }) {
// css var & 数组直接返回
if (Array.isArray(value) || cssVariableExp.test(value)) return { prop, value }
const values = parseValues(value)
// Todo 2 RN下顺序不一致转换结果不一致,故这里不处理,动画前后transform排序不一致的问题,由业务调整写法
// Todo transform 排序不一致时,transform动画会闪烁,故这里同样的排序输出 transform
values.sort()
// values.sort()
const transform = []
values.forEach(item => {
const match = item.match(/([/\w]+)\((.+)\)/)
Expand Down
23 changes: 7 additions & 16 deletions packages/webpack-plugin/lib/react/style-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,27 +135,18 @@ function getClassMap ({ content, filename, mode, srcMode, ctorType, formatValueN
if (classMapKeys.length) {
classMapKeys.forEach((key) => {
if (Object.keys(classMapValue).length) {
let _default = classMap[key]?._default
let _media = classMap[key]?._media
// set css defalut value
const val = classMap[key] || {}
classMap[key] = Object.assign(val, classMapValue)

// set css media
if (isMedia) {
// 当前是媒体查询
_default = _default || {}
_media = _media || []
const _media = classMap[key]?._media || []
_media.push({
options,
value: classMapValue
})
classMap[key] = {
_media,
_default
}
} else if (_default) {
// 已有媒体查询数据,此次非媒体查询
Object.assign(_default, classMapValue)
} else {
// 无媒体查询
const val = classMap[key] || {}
classMap[key] = Object.assign(val, classMapValue)
classMap[key]._media = _media
}
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -334,8 +334,9 @@ export function parseValues (str: string, char = ' ') {
// parse string transform, eg: transform: 'rotateX(45deg) rotateZ(0.785398rad)'
function parseTransform (transformStr: string) {
const values = parseValues(transformStr)
// Todo transform 排序不一致时,transform动画会闪烁,故这里同样的排序输出 transform
values.sort()
// Todo 2 RN下顺序不一致转换结果不一致,故这里不处理,动画前后transform 排序不一致的问题,由业务调整写法
// Todo 1 transform 排序不一致时,transform动画会闪烁,故这里同样的排序输出 transform
// values.sort()
const transform: { [propName: string]: string | number | number[] }[] = []
values.forEach(item => {
const match = item.match(/([/\w]+)\((.+)\)/)
Expand Down
Loading