gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:58 27 4
gpt4 key购买 nike

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

RCTAugmentPlayerManager.h

#import "RCTBridgeModule.h"

@interface RCTAugmentPlayerManager : NSObject <RCTBridgeModule>
@end

RCTAugmentPlayerManager.m

@implementation RCTAugmentPlayerManager

RCT_EXPORT_MODULE();

// Method which execute treatment
RCT_EXPORT_METHOD(oneMethod:(NSString *)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);

谢谢

最佳答案

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 native : Call method of RCTViewManager and Render a View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com