[尝试学习React Native自定义Native UI组件。
// FridgeCameraViewManager.swift
import UIKit
@objc(FridgeCameraViewManager)
class FridgeCameraViewManager: RCTViewManager {
override func view() -> UIView! {
let label = UILabel()
label.text = "Swift Component"
label.textAlignment = .center
return label
}
@objc static override func requiresMainQueueSetup() -> Bool {
return false
}
}
。
// FridgeCameraViewManager.h
#import <Foundation/Foundation.h>
#import "React/RCTViewManager.h"
@interface RCT_EXTERN_MODULE(FridgeCameraViewManager, RCTViewManager)
@end
。
// FridgeCameraView.js
import {requireNativeComponent} from 'react-native';
const FridgeCameraView = requireNativeComponent('FridgeCameraView', null);
export default FridgeCameraView;
[当我尝试在App.js中的某个地方使用FridgeCameraView组件时,仅当我使用Xcode构建和运行项目时,该组件才起作用。否则,在更改某些内容时使用热重载,我会收到“ Invariant Violation:尝试注册两个具有相同名称FridgeCameraView的视图”。
以某种方式,当我安装react-router-native
时错误消失了。我认为有包装冲突或我缺少的东西。希望这将是将来遇到此错误的人的解决方案。如果有人知道这个奇怪的错误背后是什么,我仍在等待解释。