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 のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
Vim は強力なフルスクリーン テキスト エディターであり、Linux/UNIX で最も一般的に使用...
この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...
HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...
目次まずページレイアウトを構築する必要がありますJS関数1 JS関数2 JS関数3 JS関数4効果図...
通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーの...
DockerにNginxをインストールするNginx は、IMAP/POP3/SMTP サービスも提...
インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...
目次ショートポーリングロングポーリングウェブソケットコミュニケーションの原則シンプルな1対1チャット...
ウェブページの基本要素として、画像はページの読み込み速度に影響を与える重要な要素の 1 つです。画像...
この記事では、シームレスなスクロールを実現するためのフレックスレイアウトのサンプルコードを主に紹介し...
Windows サーバーでデータベース データを定期的にバックアップする場合は、Windows タス...
MySQL ロックの概要他のデータベースと比較すると、MySQL のロック メカニズムは比較的単純で...
序文:複数の要素を格納するために、配列は最も一般的に使用されるデータ構造ですが、配列には多くの欠点も...
多くの場合、ローカル データベースのデータをエクスポートしたり、他のデータベースからデータをインポー...
序文私は less/sass を書くことに慣れていますが、小さなプログラムを開発するときには、まだ ...