1. 文脈1. 使用シナリオ子孫コンポーネントに値を渡したいシナリオを想像してください。どうすればよいでしょうか? 小道具を使って層ごとに受け渡すと、非常に面倒になります。 より良い方法: 2. 使用手順
const { プロバイダー、コンシューマー } = React.createContext()
<プロバイダー> <div className="アプリ"> <子供1 /> </div> </プロバイダー>
<プロバイダー値="ピンク">
<消費者> {data => <span>データ パラメータは受信したデータを表します -- {data}</span>} </消費者> 3. 結論
2. 小道具の詳細1. 子供の財産children 属性: コンポーネント タグの子ノードを表します。コンポーネントタグに子ノードがある場合、propsにはこの属性が設定されます。 childrenプロパティは通常のpropsと同じで、その値は何でもかまいません(テキスト、ラベル、コンポーネント、関数など)。 コードは次のとおりです(例): 関数Hello(props) { 戻る ( <div> コンポーネントの子ノード: {props.children} </div> ) } <Hello>私は子ノードです</Hello> 2. 小道具の検証コンポーネントの場合、props は外部データのコンテナであり、コンポーネント ユーザーによって渡されるデータの形式は保証されません。 受信データの形式が正しくない場合、コンポーネントでエラーが発生する可能性があります。 重要な問題: 構文エラーメッセージ以外の追加のエラーメッセージがない コードは次のとおりです(例): // 作成されたコンポーネント function App(props) { 定数 arr = props.colors const list = arr.map((item, index) => <li key={index}>{item}</li>) 戻る ( <ul>{リスト}</ul> ) } // コンポーネントを使用する場合 <App colors={19} /> プロパティ検証: コンポーネントを作成するときにプロパティのタイプと形式を指定できます。 目的: コンポーネントの使用時にプロパティによって発生するエラーをキャプチャし、明確なエラープロンプトを表示して、コンポーネントの堅牢性を高めます。 3. Props検証の使用手順
'prop-types' から PropTypes をインポートします 関数App(props) { 戻る ( <h1>こんにちは、{props.colors}</h1> ) } App.propTypes = { // colors プロパティは配列型であることが合意されています // 型が正しくない場合は、エラー分析を容易にするために明確なエラーが報告されます colors: PropTypes.array } 4. Props検証制約ルール一般的な型: React要素タイプ: 必須: 特定の構造のオブジェクト: // 共通型optionalFunc: PropTypes.func, // 必須関数: PropTypes.func.isRequired、 // 特定の構造のオブジェクトoptionalObjectWithShape: PropTypes.shape({ 色: PropTypes.文字列、 フォントサイズ: PropTypes.number }) 5. デフォルトのプロパティ値シナリオ: ページネーションコンポーネント → ページあたりに表示される項目数 機能: プロパティのデフォルト値を設定します。これは、プロパティが渡されない場合に有効になります。 関数App(props) { 戻る ( <div> props のデフォルト値はここに表示されます: {props.pageSize} </div> ) } // デフォルト値を設定する App.defaultProps = { ページサイズ: 10 } // pageSize 属性を渡さないでください <App /> 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...
MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...
職業的な観点からも、人生の観点からも、良い再建をすることは本当に簡単ではありません。楽観的で熱心で前...
序文私たちのビジネスがまだ初期段階にあり、同時実行の度合いが比較的低い場合、数年間はデッドロックの問...
公式サイトからダウンロードしたmysql-8.0.19-winx64 Windows (x86、64...
ネットワーク セキュリティは非常に重要なトピックであり、サーバーはネットワーク セキュリティにおける...
目次MySQL 制約操作1. 非ヌル制約2. ユニーク制約3. 主キー制約4. 外部キー制約5. カ...
(1)各HTMLタグには属性スタイルがあり、CSSとHTMLを組み合わせている。 <div s...
ul liの前のアイコン1をキャンセルしますクリア値1値を1に設定ラベル中央値1をクリアラベルの中央...
目次1. 準備: 2. ソースコードのコンパイル1. 設定する2. コンパイルエラー3. ターゲット...
私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...
目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...
MySQLの概要MySQL はリレーショナル データベース管理システムです。データベースは構造化され...
1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...
背景説明: 既存の負荷分散装置には、付加価値状態にある指標があります (増加するだけで減少しないため...