7***@qq.com
7***@qq.com
  • 发布:2022-06-08 19:12
  • 更新:2022-06-10 17:37
  • 阅读:475

【报Bug】nvue 动态修改 style 样式,iOS 并未接收到 updateStyles 事件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS Big Sur 11.5.2 (20G95)

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

手机系统: iOS

手机系统版本号: iOS 15

手机厂商: 苹果

手机机型: iphoneX

页面类型: nvue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

nvue

html

<SurfaceView :style="viewStyle"></SurfaceView>  
<button @click="add">变大</button>

javascript

export default {  
   data() {  
    return {  
        nums: 1  
    }  
   },  
   computed: {  
      viewStyle() {  
          if(this.nums === 1) {  
              return {height: "200upx",width: "750upx"}  
          }else {  
              return {height: "400upx",width: "750upx"}  
          }  
      }  
   },  
   methods: {  
      add() {  
          this.nums += 1  
      }  
   }  
}

objective-c

surfaceview.h

#import <Foundation/Foundation.h>  
#import "WeexSDK.h"  
@interface SurfaceView : WXComponent  
@end

surfaceview.m

#import "SurfaceView.h"  
#import "TestNative.h"  

@interface SurfaceView ()  

@property (nonatomic, assign) NSInteger local;  

@property (nonatomic, copy) NSString *identifyID;  

@property (nonatomic, copy) NSString *trackID;  

@property (nonatomic, copy) NSString *userID;  

@end  

@implementation SurfaceView  
- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance {  
    return self;  
}  

// 重制样式  
- (void)updateStyles:(NSDictionary *)styles {  
    NSLog(@"updateStyles");  
}  

// 视图加载生命周期  
- (void)viewDidLoad {  
    [super viewDidLoad];  
    self.view.backgroundColor = [UIColor colorWithRed:30/255.0 green:30/255.0 blue:30/255.0 alpha:1.0];  
    [self setupPreviewView];  
}  

// 创建渲染视图  
- (void)setupPreviewView {  
    [TestNativePlugin play:self.view];  
}  

@end  

操作步骤:

1.nvue 中点击变大按钮

预期结果:

objective-c 能监听到 updateStyles

实际结果:

objective-c 未监听到 updateStyles

bug描述:

nvue 中使用 iOS 组件,iOS 组件根据页面逻辑动态调整组件的宽高,想通过 WXComponent 的 updateStyles 事件监听 style 变化,然而并未触发。

2022-06-08 19:12 负责人:无 分享
已邀请:
7***@qq.com

7***@qq.com (作者)

有木有人遇到类似的问题啊,initWithRef 中也无法获取到 styles 。。

  • 7***@qq.com (作者)

    该问题已解决了

    2022-06-13 14:36

该问题目前已经被锁定, 无法添加新回复