React-「私からのメッセージ」を設定するにはどうすればよいですか

zicxor

私には2つの州があります:

const [formData, setFormData] = useState({ input: null });
const [outputData, setOutputData] = useState({ output: null });

formDataは私の<input />から来ています。そこで、入力データを書き込みで書き込んでいます。outputDataは私のGETAPI呼び出しから来ています。
入力データと出力データを分離する必要があります。メッセージが私からのものであるかどうかを関数に伝えるにはどうすればよいですか?

function renderMessage(message) {
    //const here
    if (messageFromMe) {
      return <Me />;
    } else {
      return <You />;
    }
  }

  function Me(props) {
    return (
      <li className="Messages-message currentMember">
        <div className="Message-content">
          Hey its me
        </div>
      </li>
    );
  }

  function You(props) {
    return (
      <li className="Messages-message">
        <div className="Message-content">
          Test
        </div>
      </li>
    );
  }
テイラーバーク

これはuseEffectフックに適したアプリケーションかもしれませんuseEffectフックは、コールバック関数(renderMessageの場合もあります)と値の配列の2つの引数を取ります。配列の値が変更されるたびに、useEffectは最初の引数に渡された関数を呼び出します。フック自体は、フックのコールバックによってレンダリングされたときに、YouコンポーネントとMeコンポーネントを効果的に親にする高レベルのコンポーネントの内部にあります。

今、私たちはこれを行うことができます:

const [formData, setFormData] = useState(null);
const [outputData, setOutputData] = useState(null);
const [lastMessageSender, setLastMessageSender] = useState("");

let messageFromMe = (lastMessageSender === "me");

useEffect(()=>{renderMessage(message)}, [lastMessageSender]);

最後の部分はこれです-setFormDataを呼び出すときはいつでも、setLastMessageSenderを呼び出して値「me」を渡します。setOutputDataを呼び出すときはいつでも、setLastMessageSenderを呼び出して値「you」を渡します-これらは最終的には他の値になる可能性があります。ユーザーの名前。

コードをDRYに保つのに役立つ便利な関数が必要になる場合があります...

const updateMessageFromOutput = payload => {
setOutputData(payload);
setLastMessageSender("you");
}

const updateMessageFromForm = payload => {
setFormData(payload);
setLastMessageSender("me");
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

別のモジュールからReactのモジュールのメソッドにアクセスするにはどうすればよいですか?

分類Dev

APIデータから初期React状態を設定するにはどうすればよいですか?

分類Dev

React Native、Reactルーターの初期パスを設定するにはどうすればよいですか?

分類Dev

React Nativeで画像のソースを動的に設定するにはどうすればよいですか?

分類Dev

PanGestureHandlerでreact-native-gesture-handlerから初期オフセットを設定するにはどうすればよいですか?

分類Dev

Reactルートの親に状態変数を設定するにはどうすればよいですか?

分類Dev

React with Meteorを設定するにはどうすればよいですか?

分類Dev

document.createElementを使用してReactからonClickを設定するにはどうすればよいですか?

分類Dev

ReactでantDatePickerの値を設定するにはどうすればよいですか(react-momentを使用)?

分類Dev

中央のreact-leafletマップにオフセットを設定するにはどうすればよいですか?

分類Dev

React / TypeScriptアプリのモジュールメソッドでVSCodeインテリセンスを取得するにはどうすればよいですか?

分類Dev

Reactの監視可能な配列から新しいロケール状態を設定するにはどうすればよいですか?

分類Dev

React Leafletのすべてのマーカーを表示するようにLeafletMapのズームを設定するにはどうすればよいですか?

分類Dev

onChangeを使用せずにReactで<select>の値を設定するにはどうすればよいですか?

分類Dev

Reactのrecomposeのライフサイクルメソッド内でStateを設定するにはどうすればよいですか?

分類Dev

React Adminパッケージでサーバー側の検証からメッセージを送信したカスタマイズされたエラーを表示するにはどうすればよいですか?

分類Dev

React-Bootstrap / MDBReactで行/列の高さを%で設定するにはどうすればよいですか?

分類Dev

ループ内の動的チェックボックスの状態をreactで設定するにはどうすればよいですか?

分類Dev

ReactのDateTimeピッカーから値を取得するにはどうすればよいですか?

分類Dev

React Native androidで日付形式を「今から何時間」のように設定するにはどうすればよいですか?

分類Dev

戻り値の型をReact.StatelessComponentに設定するにはどうすればよいですか?

分類Dev

Android用のReact Nativeでシャドウを設定するにはどうすればよいですか?

分類Dev

react-nativeでAlert要素のスタイルを設定するにはどうすればよいですか?

分類Dev

ExpressとReactを使用してルートを設定するにはどうすればよいですか?

分類Dev

Reactで、別の要素からのイベントに基づいて選択の値を設定するにはどうすればよいですか?

分類Dev

react jsでドロップダウンのプレースホルダーを設定するにはどうすればよいですか?

分類Dev

react-nativeのタブバーにバッジを追加するにはどうすればよいですか?

分類Dev

react-alertを使用してコンポーネントにメッセージを表示するにはどうすればよいですか?

分類Dev

react-admin Datagridのヘッダーのスタイルを設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    別のモジュールからReactのモジュールのメソッドにアクセスするにはどうすればよいですか?

  2. 2

    APIデータから初期React状態を設定するにはどうすればよいですか?

  3. 3

    React Native、Reactルーターの初期パスを設定するにはどうすればよいですか?

  4. 4

    React Nativeで画像のソースを動的に設定するにはどうすればよいですか?

  5. 5

    PanGestureHandlerでreact-native-gesture-handlerから初期オフセットを設定するにはどうすればよいですか?

  6. 6

    Reactルートの親に状態変数を設定するにはどうすればよいですか?

  7. 7

    React with Meteorを設定するにはどうすればよいですか?

  8. 8

    document.createElementを使用してReactからonClickを設定するにはどうすればよいですか?

  9. 9

    ReactでantDatePickerの値を設定するにはどうすればよいですか(react-momentを使用)?

  10. 10

    中央のreact-leafletマップにオフセットを設定するにはどうすればよいですか?

  11. 11

    React / TypeScriptアプリのモジュールメソッドでVSCodeインテリセンスを取得するにはどうすればよいですか?

  12. 12

    Reactの監視可能な配列から新しいロケール状態を設定するにはどうすればよいですか?

  13. 13

    React Leafletのすべてのマーカーを表示するようにLeafletMapのズームを設定するにはどうすればよいですか?

  14. 14

    onChangeを使用せずにReactで<select>の値を設定するにはどうすればよいですか?

  15. 15

    Reactのrecomposeのライフサイクルメソッド内でStateを設定するにはどうすればよいですか?

  16. 16

    React Adminパッケージでサーバー側の検証からメッセージを送信したカスタマイズされたエラーを表示するにはどうすればよいですか?

  17. 17

    React-Bootstrap / MDBReactで行/列の高さを%で設定するにはどうすればよいですか?

  18. 18

    ループ内の動的チェックボックスの状態をreactで設定するにはどうすればよいですか?

  19. 19

    ReactのDateTimeピッカーから値を取得するにはどうすればよいですか?

  20. 20

    React Native androidで日付形式を「今から何時間」のように設定するにはどうすればよいですか?

  21. 21

    戻り値の型をReact.StatelessComponentに設定するにはどうすればよいですか?

  22. 22

    Android用のReact Nativeでシャドウを設定するにはどうすればよいですか?

  23. 23

    react-nativeでAlert要素のスタイルを設定するにはどうすればよいですか?

  24. 24

    ExpressとReactを使用してルートを設定するにはどうすればよいですか?

  25. 25

    Reactで、別の要素からのイベントに基づいて選択の値を設定するにはどうすればよいですか?

  26. 26

    react jsでドロップダウンのプレースホルダーを設定するにはどうすればよいですか?

  27. 27

    react-nativeのタブバーにバッジを追加するにはどうすればよいですか?

  28. 28

    react-alertを使用してコンポーネントにメッセージを表示するにはどうすればよいですか?

  29. 29

    react-admin Datagridのヘッダーのスタイルを設定するにはどうすればよいですか?

ホットタグ

アーカイブ