React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

React Native が「NSArray<id<RCTBridgeModule>>型のパラメータを初期化できません」というエラーを報告する (解決方法)

最近、古い RN プロジェクトを Xcode で実行すると、次のコード エラーが報告されました。

'NSArray<id<RCTBridgeModule>> *' 型のパラメータを初期化できません
'NSArray<Class> *__strong' 型の左辺値を持つ
'NSArray<Class> *' 型のパラメータを初期化できません
'NSArray<id<RCTBridgeModule>> *__strong' 型の左辺値を持つ
'NSArray<id<RCTBridgeModule>> *' 型のパラメータを初期化できません
'NSArray<Class> *' 型の右辺値を持つ

これは、XCode 12.5 にアップグレードした後に発生する問題です。ios/Podfile ファイルに次のスクリプトを追加するだけです。

post_install を実行します |インストーラー|
## XCode 12.5 の修正
  検索と置換(
  "../node_modules/react-native/React/CxxBridge/RCTCxxBridge.mm",
  "_initializeModules:(NSArray<id<RCTBridgeModule>> *)モジュール", 
  "_initializeModules:(NSArray<Class> *)モジュール")
  
  検索と置換(
  "../node_modules/react-native/ReactCommon/turbomodule/core/platform/ios/RCTTurboModuleManager.mm",
  "RCTBridgeModuleNameForClass(モジュール))", 
  「RCTBridgeModuleNameForClass(クラス(モジュール)))」
  )
終わり

def find_and_replace(dir, findstr, replacestr)
  Dir[dir].each do |name|
      テキスト = File.read(名前)
      置換 = text.gsub(検索文字列、置換文字列)
      テキストが置換されない場合
          「修正: 」+名前を入力します
          File.open(name, "w") { |file| file.puts replace }
          STDOUT.フラッシュ
      終わり
  終わり
  Dir[dir + '*/'].each(&method(:find_and_replace))
終わり

次に、 pod installコマンドを再度実行してインストールします。

React Native の Cannot initial a parameter of type'NSArray<id<RCTBridgeModule>> エラーの報告に関するこの記事はこれで終わりです (解決方法)。React Native エラーに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactの基本のまとめ
  • Reactの親コンポーネントと子コンポーネント間のデータ転送の詳細な説明
  • Reactにおけるキーの役割の詳細な説明
  • React 入門レベルの詳細なメモ

<<:  MySQL におけるデフォルトの使用法の詳細な説明

>>:  Linuxのtopコマンド出力の詳細な説明

推薦する

Ubuntu 基本チュートリアル: apt-get コマンド

序文apt-get コマンドは、Ubuntu システムのパッケージ管理ツールです。パッケージのインス...

divコンテナ内の背景色または画像は、サイズが大きくなるにつれて大きくなります。

コードをコピーコードは次のとおりです。高さ:自動 !重要;高さ:550px;最小高さ:550px; ...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

Element+vueを使用して開始時間と終了時間の制限を実装する

この記事の例では、Element+vueを使用して開始と終了の時間制限を実装するための具体的なコード...

カルーセルバナーの自動回転効果を実現する純粋な CSS

さっそくコードを見てみましょう * { マージン: 0; パディング: 0; } 。容器 { マージ...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

Ubuntuがネットワークに接続できない場合の解決策

仮想マシン内の Ubuntu がネットワークに接続できない場合の効果的な解決策: 1. Ubuntu...

MYSQL の COLLATE とは何ですか?

序文MySQL で show create table <tablename> コマンド...

Linux は suid vim.basic ファイルを使用して権限昇格を実現します。

カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...

ウェブデザインにおけるキーワード設計手法の紹介

多くの場合、ホームページを作成するときに、Web ページ ヘッダー属性の設定を無視します。 Web ...

nginx プロキシでの複数の 302 応答の解決策 (nginx Follow 302)

proxy_intercept_errors と recursive_error_pages を使...

JavaScript で Webpack を使用するチュートリアル

目次0. Webpackとは1. Webpackの使用2. Webpackのコアコンセプト2.1 エ...

VMware 仮想マシンでの Centos8 ブリッジの静的 IP 設定方法

1. ネットワーク接続方法がブリッジされていることを確認する物理ネットワーク接続ステータスのコピーを...

Raspberry Pi 4 に Ubuntu 19.10 をインストールするための詳細なチュートリアル

以前、raspbian で実行したときに opencv の一部の依存関係をパッケージ化できず、一部の...

さまざまな種類のMySQLインデックス

インデックスとは何ですか?インデックスは、データベース ストレージ エンジンが指定されたデータをすば...