[解決済み] 不変量違反。文字列は<Text>コンポーネント内でレンダリングされなければならない。
質問
RN 0.54から0.57にアップグレードしましたが、React Native Elementsを使用しているため、アプリがかなり崩れてしまいました。
のエラー機能を利用したのですが
TextInput
コンポーネントで、基本的にエラーメッセージをスタイルし、エラーメッセージを設定することができるプロップを有効にしました。非常に便利でしたが、アップグレードによってこれらが壊れ、このエラーが表示されるようになりました。
そのコードを削除したら、エラーはなくなりましたが、このコードを実行すると、まだ問題が発生します。
{ this.state.event.cards[i].fields[j].error &&
<Text style={{ color: '#e74c3c', fontSize: 14, paddingLeft: 5 }}>
{this.state.event.cards[i].fields[j].error}
</Text>
}
テキスト入力に入力を始めると、エラーメッセージを空文字列に設定するので、エラーが返された場合、フィールドに入力するとエラーが消えます。
と同時に
this.state.event.cards[i].fields[j].error
が文字列になった途端、このエラーが返されます。しかし、私はエラーが存在するかどうかを確認し、その後、私はちょうどエラーを表示する、または少なくともしようとすることがわかります。
この件に関して、もう一組の目があればありがたいのですが。
どのように解決するのですか?
私の場合、次のコードはうまく動作します。
this.state.error === undefined
またはそれが空文字列でない限り、私は以下のコードが正常に動作します。
render() {
return (
<View>
{this.state.error &&
<Text>
Error message: {this.state.error}
</Text>
}
</View>
);
}
エラー状態が空文字列「'」に変更された場合、前述の例外が発生します。
Invariant Violation: Text strings must be rendered within a <Text> component
その理由は
this.state.error === ''
の場合、以下の式は空文字列、すなわち '' と評価され、これにより
Invariant Violation: Text strings must be rendered within a <Text> component
{this.state.error &&
<Text>
Error message: {this.state.error}
</Text>
}
いつ
this.state.error === undefined
の場合、式は次のように評価されます。
undefined
と評価され、それは私たちが期待するものであり、問題ありません。
関連
-
[解決済み】 不変量違反。_registerComponent(...)。対象コンテナがDOM要素でない
-
[解決済み] React Nativeの<Text>コンポーネントに改行を挿入するにはどうすればよいですか?
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] これは純関数ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ