Reactで子コンポーネントから親コンポーネントへのプロップスの受け渡し方法


  1. コールバック関数を使用する方法: 子コンポーネントでコールバック関数を定義し、親コンポーネントに渡すことで、子コンポーネントから親コンポーネントへデータを渡すことができます。

親コンポーネントの例:

import React from 'react';
import ChildComponent from './ChildComponent';
class ParentComponent extends React.Component {
  handleDataFromChild = (data) => {
    // 子コンポーネントからのデータを処理する
    console.log(data);
  }
  render() {
    return (
      <div>
        <ChildComponent onData={this.handleDataFromChild} />
      </div>
    );
  }
}
export default ParentComponent;

子コンポーネントの例:

import React from 'react';
class ChildComponent extends React.Component {
  sendDataToParent = () => {
    const data = 'Hello from child component!';
    this.props.onData(data); // 親コンポーネントにデータを渡す
  }
  render() {
    return (
      <div>
        <button onClick={this.sendDataToParent}>データを送信</button>
      </div>
    );
  }
}
export default ChildComponent;
  1. useContextフックを使用する方法: ReactのuseContextフックを使用すると、親コンポーネントでコンテキストを作成し、子コンポーネントから値を受け取ることができます。

親コンポーネントの例:

import React, { createContext, useContext } from 'react';
import ChildComponent from './ChildComponent';
const MyContext = createContext();
const ParentComponent = () => {
  const handleDataFromChild = (data) => {
    // 子コンポーネントからのデータを処理する
    console.log(data);
  };
  return (
    <MyContext.Provider value={handleDataFromChild}>
      <ChildComponent />
    </MyContext.Provider>
  );
};
export default ParentComponent;

子コンポーネントの例:

import React, { useContext } from 'react';
import MyContext from './ParentComponent';
const ChildComponent = () => {
  const handleData = useContext(MyContext);
  const sendDataToParent = () => {
    const data = 'Hello from child component!';
    handleData(data); // 親コンポーネントにデータを渡す
  };
  return (
    <div>
      <button onClick={sendDataToParent}>データを送信</button>
    </div>
  );
};
export default ChildComponent;

これらは、Reactで子コンポーネントから親コンポーネントへのプロップスの受け渡し方法の一部です。他の方法としては、イベントのエミッターパターンやReduxなどの状態管理ライブラリを使用する方法があります。必要に応じて、適切なアプローチを選択してください。