我正在尝试将一些数据推送到Firebase上。

这是我在App.js中的handleSubmit函数

  handleSubmit = e => {
    e.preventDefault();
    const note = {
      title: this.state.title,
      body: this.state.body
    };
    this.props.saveNotes(note);
    this.setState({
      title: "",
      body: ""
    });
  };


这是我的saveNote函数,效果很好。

function saveNotes(note) {
  database.push(note);
}


我不知道为什么像这样使用箭头功能无法推送到数据库

function saveNotes(note) {
  return () => database.push(note);
}

最佳答案

如果您想关注以下工作:

function saveNotes(note) {
  return () => database.push(note);
}


那么您应该这样调用saveNotes(note)

this.props.saveNotes(note)();


要么

const arrowFunction = this.props.saveNotes(note);
arrowFunction();


因为您返回的是对函数的引用,而不是函数的结果

请参考指南IIEF

但这听起来不适合这里,因为您可以这样简单地调用:

const saveNotes = (note) => database.push(note);

关于javascript - 为什么它返回不同的结果? (ES6箭头功能),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60201827/

10-10 11:26