Я пытаюсь использовать компонент SwiftUI с моим приложением React Native, которое кажется немного сложным, поскольку я не нашел никакой документации или учебных пособий для этого в Интернете. Вот файлы, которые я использую:
CategoryCardView.swift
import UIKit
import SwiftUI
struct CategoryCard: View {
var name: String
var body: some View {
Text(name)
}
}
@objc(RCTCategoryCardViewManager)
class RCTCategoryCardViewManager: RCTViewManager {
override static func requiresMainQueueSetup() -> Bool {
return true
}
@objc var name: String = "Default text"
override func view() -> UIView! {
let swiftUIView = CategoryCard(name: name)
let viewController = UIHostingController(rootView: swiftUIView)
return viewController.view
}
}
CategoryCardView.m
#import <React/RCTViewManager.h>
@interface RCT_EXTERN_MODULE(RCTCategoryCardViewManager, RCTViewManager)
RCT_EXPORT_VIEW_PROPERTY(name, NSString)
@end
NativeCategoryCard.tsx (в React Native):
import {requireNativeComponent} from "react-native";
import React from "react";
const NativeCategoryCard = requireNativeComponent('RCTCategoryCardView');
export interface CategoryCardProps{
name: string;
}
function CategoryCard(props: CategoryCardProps) {
return <NativeCategoryCard
style={[{
height: 100,
width: 100
}]}
{...props}
/>
}
export default CategoryCard;
А потом где-то в моем собственном React-коде:
<CategoryCard text='hello' />
Мое приложение выдает следующую ошибку при попытке рендеринга <CategoryCard>
:
Exception thrown while executing UI block: -[_TtGC7SwiftUI14_UIHostingViewV7PalChat12CategoryCard_ setName:]: unrecognized selector sent to instance 0x7fc8718c7830
Я не знаю Я не совсем понимаю Swift и SwiftUI, особенно с точки зрения его интеграции с React Native, поэтому я прошу прощения, если я совершил очевидную ошибку.