React 原生自定义组件

Posted

技术标签:

【中文标题】React 原生自定义组件【英文标题】:React native custom component 【发布时间】:2015-12-10 19:50:32 【问题描述】:

我正在尝试使用 ios 工具栏并将其导入组件以用于本机反应。我不明白我哪里出错了。我在使用var Tool = require('toolkit.ios.js');时收到错误“uknown module Toolkit.ios.js”

文件在那里。我在这里想念什么? 我试图在这里遵循本教程,但使用工具栏组件 https://facebook.github.io/react-native/docs/native-components-ios.html#content

 #import <Foundation/Foundation.h>

@import UIKit;

#import "RCTViewManager.h"

@interface RCTToolBar : RCTViewManager
@end

@implementation RCTToolBar


RCT_EXPORT_MODULE()

- (UIView *)view

  return [[UIToolbar alloc] init];


@end

// MapView.js

var React = require('react-native');
var  requireNativeComponent  = React;

// requireNativeComponent automatically resolves this to "RCTMapManager"

class ToolBar extends React.Component 
  render() 
    return <RCTToolBar />;
  


module.exports = requireNativeComponent('RCTToolBar', ToolBar);

编辑:复制和粘贴代码搞砸了。

【问题讨论】:

【参考方案1】:

您需要具有相对路径的文件,例如:var Tool = require('./path/to/componenttoolkit')

此外,您不需要在 require 语句中包含 ios.js,打包程序足够聪明,可以知道您的组件是什么,并且当您想要拥有跨平台组件时,这最终会有所帮助。

【讨论】:

这是问题的一部分,另一个是因为我按照示例并将文件命名为 RCTMapManager.m,它们已经存在,所以我得到了重复的引用。感谢您的意见。

以上是关于React 原生自定义组件的主要内容,如果未能解决你的问题,请参考以下文章

如何将 navigator.pop 传递给自定义反应原生组件

Vue结合原生js实现自定义组件自动生成

如何覆盖现有的 react-native 原生组件

在 React Native Android 上定义自定义原生事件

vue创建自定义组件并监听原生事件

React Native自定义路由管理