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コマンド出力の詳細な説明

推薦する

Vue命令の動作原理と実装方法

Vue の紹介現在のビッグフロントエンドの時代は、混乱と衝突の時代です。世界は多くの派閥に分かれてお...

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

MySQL マルチインスタンス構成ソリューション

1.1 MySQL マルチインスタンスとは何ですか?簡単に言うと、MySQL マルチインスタンスとは...

VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

目次PXEはサーバーの無人バッチ展開を実装します1. PXEの概要1.1 PXEとは何か1.2 キッ...

XHTML 3つの文書型宣言

XHTML は 3 つのドキュメント タイプ宣言を定義します。最もよく使用されるのは XHTML T...

Vue.jsは画像切り替え機能を実装する

この記事では、画像切り替え機能を実装するためのVue.jsの具体的なコードを参考までに共有します。具...

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

vue backtop コンポーネントを実装するための完全なコード

効果: コード: <テンプレート> <div class="back-t...

CentOS 8にdockerをインストールする最も詳細な方法

CentOS 8にDockerをインストールする公式ドキュメント: https://docs.doc...

Vue の双方向イベントバインディング v-model の原理についての簡単な説明

目次説明する:要約する補充するDOM を直接変更して操作する js や jQuery とは異なり、V...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

Nodejs は readline を使用してコンテンツ入力を促すサンプルコード

目次序文1. batがjsを実行する2. ターミナルにバージョン番号を入力してパッケージ化コマンドを...

複数のネットワークカードを備えた Linux システムでのルーティング構成の詳細な説明

Linux でのルーティング設定コマンド1. ホストルーティングを追加する ルートを追加 -host...

Vue シングルページ アプリケーションで Markdown レンダリングを実装する

以前、Markdown をレンダリングするときに、mavonEditor のプレビュー モードを使用...