「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > シェル内のプロパティとコールバック

シェル内のプロパティとコールバック

2024 年 11 月 6 日に公開
ブラウズ:619

Props and Callbacks in a shell

このブログ投稿では、親コンポーネント (ListBox) が子コンポーネント (AlertComponent) と対話する実践的なシナリオを説明します。 ]) 小道具とコールバックを使用します。

これは、React で子コンポーネントが親に通信して状態を維持したり、アクションをトリガーしたりする場合に便利です。

この例を使って理解しましょう:

  • 項目のリストを表示する ListBox コンポーネントがあります。ユーザーがいずれかの項目を長押しすると、その項目を削除するかどうかを尋ねる警告ダイアログが表示されます。

インタラクションの内訳は次のとおりです:

  1. ListBox (親) は項目をレンダリングし、必要なプロパティとコールバックを AlertComponent (子) に渡します。
import React, { useState } from 'react';
import AlertComponent from './AlertComponent';

const ListBox = () => {
  const [showComponent, setShowComponent] = useState(false);

  const alertAction = async () => {
    setShowComponent(!showComponent);
  };

  return (
    

Item 1

{/* Other list items */}
{/* Passing props to the child component */} { alert('Item Deleted'); setShowComponent(false); }} onCancel={() => setShowComponent(false)} showComponent={alertAction} />
); }; export default ListBox;
  1. AlertComponent は、タイトル、説明、onAcceptonCancel などのコールバック、状態変更プロップ showComponent などの小道具を受け入れます。 ]。
export const AlertComponent: = ({ title, description, 
onAccept, onCancel, showComponent }) => {
return (
... rest of the code
)
}
  1. 親コンポーネントはダイアログの表示/非表示を管理する必要があり、子コンポーネントはコールバックを介してイベントを発行して親と対話し、この表示/非表示を切り替えます。

showComponent は、AlertComponent

の表示/非表示を担当する状態を維持するため、コールバックとして機能します。

Reject が押されるたびに、このコールバックは showComponent.
の現在の状態を切り替えます。

 {
          alert('Item Deleted');
          setShowComponent(false);
        }}
        onCancel={() => setShowComponent(false)}
        showComponent={alertAction}
      />

このように propscallbacks を使用すると、React の親コンポーネントと子コンポーネント間のデータの明確なフローが可能になります。

親は状態を制御して子に渡すことができ、子はコールバックを介して通信して、ユーザーが実行した変更やアクションを親に通知できます。

これは、ユーザー インタラクションに応じてアラート、モーダル、ポップアップを表示するようなシナリオで特に役立ちます。

構築を続けます!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/amanbhoria/props-and-callbacks-in-a-shell-4jk?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>
  • Webスクレイピング - 面白いですね!
    Webスクレイピング - 面白いですね!
    クールな用語: CRON = 指定された間隔でタスクを自動的にスケジュールするプログラミング技術 ウェブって何? プロジェクトなどを調査するとき、私たちは通常、日記、エクセル、ドキュメントなど、さまざまなサイトから情報を書き込みます。 私たちはウェブをスクレイピングし、手動でデータ...
    プログラミング 2024 年 11 月 6 日に公開
  • お客様の声グリッドセクション
    お客様の声グリッドセクション
    ? CSS グリッドを学習しながら、このお客様の声グリッド セクションの作成が完了しました。 ?グリッドは構造化されたレイアウトの作成に最適です。 ?ライブデモ: https://courageous-chebakia-b55f43.netlify.app/ ? GitHub: https://gi...
    プログラミング 2024 年 11 月 6 日に公開
  • REGISTER_GLOBALS が PHP の主要なセキュリティ リスクとみなされるのはなぜですか?
    REGISTER_GLOBALS が PHP の主要なセキュリティ リスクとみなされるのはなぜですか?
    REGISTER_GLOBALS の危険性REGISTER_GLOBALS は、すべての GET 変数と POST 変数を PHP スクリプト内でグローバル変数として使用できるようにする PHP 設定です。この機能は便利に見えるかもしれませんが、潜在的なセキュリティ脆弱性やコーディング方法のため、使...
    プログラミング 2024 年 11 月 6 日に公開
  • Nodemailer の概要: Node.js での簡単な電子メール送信
    Nodemailer の概要: Node.js での簡単な電子メール送信
    Nodemailer は、メールを送信するための Node.js モジュールです。簡単な概要は次のとおりです: トランスポーター: 電子メールの送信方法を定義します (Gmail、カスタム SMTP など経由)。 const transporter = nodemailer.createTra...
    プログラミング 2024 年 11 月 6 日に公開
  • JavaScript での簡単なエラー処理: 安全な代入演算子がコードを簡素化する方法
    JavaScript での簡単なエラー処理: 安全な代入演算子がコードを簡素化する方法
    JavaScript でのエラー処理は面倒になる場合があります。 try/catch ステートメントで大きなコード ブロックをラップすることは機能しますが、プロジェクトが成長するにつれて、デバッグは悪夢のようになります。幸いなことに、もっと良い方法があります。 安全な代入演算子 (?=) を入力しま...
    プログラミング 2024 年 11 月 6 日に公開
  • Javascript は難しい (ESadness あり)
    Javascript は難しい (ESadness あり)
    長文になりますが、もう一度言わせてください。 JAVASCRIPTは難しいです。最後に会ったとき、私は Javascript の世界に足を踏み入れていました。目を輝かせ、希望に満ちたプログラマーが野生のジャングルに足を踏み入れ、「これはどれほど難しいことでしょう?」と言いました。私はどれほど間違っ...
    プログラミング 2024 年 11 月 6 日に公開
  • ## JavaScript を使用せずに CSS で円グラフのセグメントを作成できますか?
    ## JavaScript を使用せずに CSS で円グラフのセグメントを作成できますか?
    CSS を使用した円のセグメントborder-radius を使用して CSS で円を作成するのが一般的です。しかし、円グラフに似たセグメントを使用しても同様の効果を達成できるでしょうか?この記事では、JavaScript の使用を除き、HTML と CSS だけでこれを実現する方法について詳しく説...
    プログラミング 2024 年 11 月 6 日に公開
  • 小さなベクター ストアをゼロから構築する
    小さなベクター ストアをゼロから構築する
    With the evolving landscape of generative AI, vector databases are playing crucial role in powering generative AI applications. There are so many vect...
    プログラミング 2024 年 11 月 6 日に公開
  • Chrome で AI 実験 API を使用する方法
    Chrome で AI 実験 API を使用する方法
    Chrome で試験運用版 AI API を使用するには、次の手順に従ってください: ハードウェア要件 4GB RAM GPU が利用可能 最低 22GB のスペース Windows 10.11 または macOS Ventura 以降のバージョン (Linux 仕様なし) 次はまだ...
    プログラミング 2024 年 11 月 6 日に公開
  • レビュー: Django DX をブーストする (Adam Johnson 著)
    レビュー: Django DX をブーストする (Adam Johnson 著)
    本のレビューはデリケートです。ネタバレするつもりはありませんが、潜在的な読者に何が期待されるのかを感じてもらいたいと考えています。これは、コンテキストの提供と興味を維持することの間の巧みなバランスです。このレビューでは、あまり多くを明らかにせずに、あなたを誘惑するのに十分なだけの情報を提供することで...
    プログラミング 2024 年 11 月 6 日に公開
  • 配列要素をグループ化し、多次元配列の別の列の値を結合する方法
    配列要素をグループ化し、多次元配列の別の列の値を結合する方法
    配列要素を列ごとにグループ化し、別の列の値を結合する2 つの列を持つネストされた配列を含む配列が与えられた場合、タスクはグループ化することです。特定の列に基づいてサブ配列を作成し、各グループ内の別の列の値を連結して、カンマ区切りのリストを作成します。次の配列の例を考えてみましょう。$array = ...
    プログラミング 2024 年 11 月 6 日に公開
  • 新たに追加された 3 つの例外機能
    新たに追加された 3 つの例外機能
    JDK 7 以降、例外処理は 3 つの新機能 (自動リソース管理、マルチキャッチ、より正確な再スロー) で拡張されました。 マルチキャッチを使用すると、同じ catch 句で複数の例外をキャッチでき、コードの重複を回避できます。 マルチキャッチを使用するには、例外のリストを | で区切って指定しま...
    プログラミング 2024 年 11 月 6 日に公開
  • ES6 コード実行時の「予期しないトークンのエクスポート」エラーを修正する方法?
    ES6 コード実行時の「予期しないトークンのエクスポート」エラーを修正する方法?
    「予期しないトークン エクスポート エラーのトラブルシューティング」プロジェクト内で ES6 コードを実行しようとすると、「予期しないトークン エクスポート」エラーが発生する場合があります。このエラーは、使用されている環境が ES6 モジュールで採用されているエクスポート キーワード構文をサポートし...
    プログラミング 2024 年 11 月 6 日に公開
  • アンインストールしても VSCode 拡張機能がファイル システムから削除されないため、解決策を作成しました。
    アンインストールしても VSCode 拡張機能がファイル システムから削除されないため、解決策を作成しました。
    つまり、これは vscode ベースのエディターの問題です。拡張機能をアンインストールした後でも、拡張機能はファイル システムに残り、時間の経過とともにシステムが停止します。簡単なソリューションを作成しました。この Python スクリプトを実行すると、vscode にインストールされていない拡張機...
    プログラミング 2024 年 11 月 6 日に公開
  • GitHub Actions を介して Web サイトのコンテンツをスケジュールどおりに更新する
    GitHub Actions を介して Web サイトのコンテンツをスケジュールどおりに更新する
    従来の意味でのコンテンツ データベースを必要としない、自立可能なコンテンツ管理システムを構築する私のこれまでの道のりを共有したいと思います。 問題 この Web サイトのコンテンツ (ブログ投稿とブックマーク) は Notion データベースに保存されています: ブックマークのあるデ...
    プログラミング 2024 年 11 月 6 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3