Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将参数从React Native发送到Native_Javascript_Ios_Objective C_React Native - Fatal编程技术网

Javascript 如何将参数从React Native发送到Native

Javascript 如何将参数从React Native发送到Native,javascript,ios,objective-c,react-native,Javascript,Ios,Objective C,React Native,WebView.js // WebView.js var PropTypes = require('ReactPropTypes') var React = require('React') import { requireNativeComponent } from 'react-native' var UIWebView = React.createClass({ propTypes: { url: PropTypes.string }, render () {

WebView.js

// WebView.js

var PropTypes = require('ReactPropTypes')
var React = require('React')
import { requireNativeComponent } from 'react-native'

var UIWebView = React.createClass({

  propTypes: {
    url: PropTypes.string
  },

  render () {
    return <RCTUIWebView {...this.props} />
  }
})

var RCTUIWebView = requireNativeComponent('RCTUIWebView', UIWebView)

module.exports = UIWebView
RCTUIWebView.h

// RCTUIWebView.h
#ifndef RCTUIWebView_h
#define RCTUIWebView_h

#import <UIKit/UIKit.h>
#import <UIView+React.h>

@class RCTUIWebView;

@interface RCTUIWebView : NSObject

@property (nonatomic, copy) NSString *url;
//@property (nonatomic, assign) NSString *uri;

- (UIWebView *) getWebView;

@end

#endif /* RCTUIWebView_h */
//RCTUIWebView.h
#ifndef RCTUIWebView\u h
#定义RCTUIWebView\u h
#进口
#进口
@类RCTUIWebView;
@接口RCTUIWebView:NSObject
@属性(非原子,复制)NSString*url;
//@属性(非原子,赋值)NSString*uri;
-(UIWebView*)getWebView;
@结束
#endif/*RCTUIWebView\u h*/
RCTUIWebView.m

// RCTUIWebView.m

#import <Foundation/Foundation.h>

#import "RCTUIWebView.h"

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"

@implementation RCTUIWebView

NSString *URL = @"http://www.baidu.com";

- (void) setUrl:(NSString *)url {
  URL = url;
}

- (UIWebView *) getWebView {
  UIWebView *webview = [[UIWebView alloc] init];
  NSURLRequest *request =[NSURLRequest requestWithURL:[ NSURL URLWithString: URL]];
  [webview loadRequest:request];
  return webview;
}

@end
//RCTUIWebView.m
#进口
#导入“RCTUIWebView.h”
#导入“RCTBridge.h”
#导入“RCTEventDispatcher.h”
@RCTUIWebView的实现
NSString*URL=@”http://www.baidu.com";
-(void)setUrl:(NSString*)url{
URL=URL;
}
-(UIWebView*)getWebView{
UIWebView*webview=[[UIWebView alloc]init];
NSURLRequest*request=[NSURLRequest requestWithURL:[NSURL URLWithString:URL]];
[webview加载请求:请求];
返回webview;
}
@结束
我试图用参数“url”呈现它

var BrowserView = require('./WebView')
<BrowserView
  style={{width: 400, height: 500}}
  url={this.state.event.landingPage}
/>
var BrowserView=require(“./WebView”)
它表明

“执行UI块时引发异常:-[UIWebView setUrl:]: 无法识别的选择器设置为实例0x7fcf2de1e180“

在刺激器和显示

“[错误][tid:main][RCTNavigator.m:514]错误 设置带有标记#328的RCTUIWebView的属性“url”:设置错误 标记为#333的RCTUIWebView的属性“url”:无法调整当前值 “超出可用视图的堆栈顶部”

在Xcode控制台中

我不明白为什么

如果我修改了渲染部分:

var BrowserView = require('./WebView')
<BrowserView
  style={{width: 400, height: 500}}
  //url={this.state.event.landingPage}
/>
var BrowserView=require(“./WebView”)

很好。

在RCTWebViewManager.m中返回RCTUIWebView的实例

//  RCTWebViewManager.m

#import "RCTUIWebViewManager.h"
#import "RCTUIWebView.h"

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"
#import "UIView+React.h"

@implementation RCTUIWebViewManager

RCT_EXPORT_MODULE()

RCT_EXPORT_VIEW_PROPERTY(url, NSString);

- (UIView *)view
{

  RCTUIWebView *rctuiwebview = [[RCTUIWebView alloc] init];
  return [rctuiwebview getWebView];

}

@end
//  RCTWebViewManager.m

#import "RCTUIWebViewManager.h"
#import "RCTUIWebView.h"

@implementation RCTUIWebViewManager

RCT_EXPORT_MODULE()

RCT_EXPORT_VIEW_PROPERTY(url, NSString);

- (UIView *)view
{

  RCTUIWebView *rctuiwebview = [[RCTUIWebView alloc] init];
  return rctuiwebview;

}

@end

返回RCTWebViewManager.m中RCTUIWebView的实例

//  RCTWebViewManager.m

#import "RCTUIWebViewManager.h"
#import "RCTUIWebView.h"

#import "RCTBridge.h"
#import "RCTEventDispatcher.h"
#import "UIView+React.h"

@implementation RCTUIWebViewManager

RCT_EXPORT_MODULE()

RCT_EXPORT_VIEW_PROPERTY(url, NSString);

- (UIView *)view
{

  RCTUIWebView *rctuiwebview = [[RCTUIWebView alloc] init];
  return [rctuiwebview getWebView];

}

@end
//  RCTWebViewManager.m

#import "RCTUIWebViewManager.h"
#import "RCTUIWebView.h"

@implementation RCTUIWebViewManager

RCT_EXPORT_MODULE()

RCT_EXPORT_VIEW_PROPERTY(url, NSString);

- (UIView *)view
{

  RCTUIWebView *rctuiwebview = [[RCTUIWebView alloc] init];
  return rctuiwebview;

}

@end