Sender
コンポーネント内のイベントハンドラ handleSendMessage
で保存したデータを、Reader
内のイベントハンドラ handleReadAndShowMessage
で読み出して利用する
という最小限の例を以下のように示してみました。 Sender とも Reader とも異なる store-mssage.ts
というファイルを用意して、両者からそれを利用する形になっています。
store-message.ts
export const Store = {
message: "",
}
sender.ts
import { Store } from "./store-message.ts"
export const Sender: FC<Props> = (props) => {
const handleSendMessage = () => {
Store.message = "HELLO!"
}
reader.ts
import { Store } from "./store-message.ts"
export const Reader: FC<Props> = (props) => {
const handleReadAndShowMessage = () => {
window.alert(Store.message);
}
もし「イベントハンドラで読み出す」ではなく、コンポーネントが描画する内容に影響を与える場合には、ミュータブルなオブジェクトではなく、親コンポーネント内のステートで実装すべきです。
コールバック Props などを使った Lift State Up パターンです。
2Like