ホーム>source

Firebaseにデータをプッシュしようとしています。

これがApp.jsのhandleSubmit関数です

<前>ウィズウィズ

これは私のsaveNote関数であり、正常に動作します。

<前>ウィズウィズ

なぜデータベースへのプッシュがこのような矢印関数の使用で機能しないのかと思います

<前>ウィズウィズ handleSubmit = e => { e.preventDefault(); const note = { title: this.state.title, body: this.state.body }; this.props.saveNotes(note); this.setState({ title: "", body: "" }); };
あなたの答え
  • 解決した方法 # 1

    あなたが働きたいなら:

    <前>ウィズウィズ

    次に、 function saveNotes(note) { return () => database.push(note); } を呼び出す必要があります  このような。

    <前>ウィズウィズ

    または

    <前>ウィズウィズ

    関数の結果ではなく関数への参照を返すため

    ガイドIIEFを参照してください

    しかし、これは単に次のように呼び出すことができるため、ここでは適切に聞こえません。

    <前>ウィズウィズ

  • 解決した方法 # 2

    関数内で関数を使用したため

    あなたが使用して関数を書き換えたい場合アロー機能 構文は次のとおりです。

    <前>ウィズウィズ

    または

    <前>ウィズウィズ

    アロー機能の詳細については、MDN Webドキュメントをご覧ください。

  • 解決した方法 # 3

    最後のsaveNote関数は関数 saveNotes(note) を返します  プッシュ動作はしません。

    this.props.saveNotes(note)();

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ java - StAXが文字列のすべての文字を返さない