尝试学习 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 构建和运行项目时才有效。否则,在更改某些内容时使用热重载,我得到“不变违规:试图注册两个同名的视图 FridgeCameraView”。