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

推薦する

Linux でのルーティングと仮想マシン ネットワークの設定に関する詳細なグラフィック説明

ルーティングとは何ですか?ルーティングとは、相互接続されたネットワークを介して送信元ステーションから...

Canonical が Flutter で Linux デスクトップ アプリを有効化 (推奨)

Google の Flutter の目標は、どのプラットフォームを使用していても、ネイティブの速度...

HTML に埋め込まれた MP4 形式のビデオが再生できないのはなぜですか?

次のコードは、私の test.html にあります。ビデオは、c:\test.html などの絶対パ...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

Vue3.0 は虫眼鏡効果のケーススタディを実装します

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

Webpack での publicPath の使用法の詳細な説明

目次出力出力パス出力.publicPath webpack-dev-server の publicP...

ノードの対応するバージョンに関する簡単な説明 node-sass sass-loader

目次ノードのバージョンが一致しない、ノードをアップグレードまたはダウングレードするnvm を使用して...

vue keep-alive の簡単な概要

1. 機能主にコンポーネントの状態を保持したり、再レンダリングを回避したりするために使用されます。 ...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

ウェブページの色特性の分類

色特性の分類あらゆる色は、赤、緑、青の三原色から構成されます。三原色の中で暖色なのは赤だけなので、作...

Alibaba Cloud ECS サーバーの開始プロセス (初心者必読のチュートリアル)

1. Alibaba Cloudは、個人のニーズに応じて適切なクラウドサーバーを選択し、CPU、メ...

CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...

docker を使用して Django テクノロジー スタック プロジェクトをデプロイする方法

Docker の人気と成熟に伴い、Docker は徐々にプロジェクトをデプロイするための第一の選択肢...