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 のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
この記事では、タブ切り替えを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...
Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...
1. まず、お使いのマシンに応じて、MySQL 公式サイトから対応するデータベースをダウンロードしま...
毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸ツール系のサイトでは入門チュートリア...
html-webpack-pluginプラグインを使用してページを開始すると、htmlページをメモリ...
Baiduで検索しました。 。 chcp コマンドを使用して、cmd の文字エンコーディングを 65...
この状況は通常、中国語言語パックがインストールされていないか、デフォルトの言語設定に問題があるために...
解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...
Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...
1. 問題下図のような表があり、結果値がreference_high値より大きいデータを見つける必要...
まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...
コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...
目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...
MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...
1) 適用範囲:読み取り専用:input[type="text"],input[...