React Native SwiftUI «нераспознанный селектор, отправленный экземпляру» - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь использовать компонент 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, поэтому я прошу прощения, если я совершил очевидную ошибку.

...