• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

javascript - react 原生 : Call method of RCTViewManager and Render a View

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:02:43 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在 React Native 中,是否可以渲染 RCTBridgeModule 的 UIView 并调用此 Module 的方法? 下面我发布了我用两种方法创建的模块。但我不知道它是否正确:

RCTAugmentPlayerManager.h

#import "RCTBridgeModule.h"

@interface RCTAugmentPlayerManager : NSObject <RCTBridgeModule>
@end

RCTAugmentPlayerManager.m

@implementation RCTAugmentPlayerManager

RCT_EXPORT_MODULE();

// Method which execute treatment 
RCT_EXPORT_METHOD(oneMethodNSString *)name )
{
  RCTLogInfo(@"Display name %@", name);
}

// Method which return a view to render in Javascript
RCT_EXPORT_METHOD(methodWithReturnView)
{
   UIView * view = [[UIView alloc] init];
   return view;
}
@end

AugmentPlayer.js

import { NativeModules } from 'react-native';
var RCTAugmentPlayerManager = NativeModules.RCTAugmentPlayerManager;

index.ios.js

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View, 
  NativeModules
} from 'react-native';

class mobileApp extends Component {

    constructor(props){
        super(props);

        var augment = NativeModules.AugmentPlayer; 
        augment.oneMethod('test');
    }
  render() {

    return (

    <View style={{height:200, width:200}}>      
        {AugmentPlayer.methodWithReturnView}
    </View>
    );
  }
}    

AppRegistry.registerComponent('mobileApp', () => mobileApp);

谢谢



Best Answer-推荐答案


TL;DR:不,你不能。

要渲染 UIView,您必须继承 RCTViewManager 并在 view 方法中返回您的 View :

@interface MyCoolViewManager: RCTViewManager
@end

@implementation MyCoolViewManager

RCT_EXPORT_MODULE()

-(UIView *)view {
   return [MyCoolView new];
}

@end

有关更多信息,请参阅文档,其中非常详细地说明了您需要做什么:

http://facebook.github.io/react-native/docs/native-components-ios.html

关于javascript - react 原生 : Call method of RCTViewManager and Render a View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500614/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap