nextjs 类中的箭头函数生成“使用服务器”错误

Arrow function in class nextjs generate "use server" error

提问人:Martin Gainza Koulaksezian 提问时间:10/2/2023 最后编辑:Martin Gainza Koulaksezian 更新时间:10/2/2023 访问量:68

问:

我正在nextjs应用程序中实现mobx,当我创建一个类并尝试在组件中使用它时,我收到以下错误:

错误:函数无法直接传递给客户端组件,除非通过将其标记为“使用服务器”来显式公开它。

班级:

class Card {
  _card: TCard = {
    wordsToRelate: "",
    relationToRelate: "",
  };

  constructor() {
    makeAutoObservable(this);
  }

  doSomething = () => {    
    //doing something
  }
}

将箭头函数更改为常规函数可解决以下问题:

class Card {
  _card: TCard = {
    wordsToRelate: "",
    relationToRelate: "",
  };

  constructor() {
    makeAutoObservable(this);
  }

  doSomething() {
    //doing something
  }
}

对自己提出这样的问题:
为什么会这样? 为什么我不能在类中使用箭头函数?

您应该避免在类中使用箭头函数,因为它们不会是原型的一部分,因此不会被每个实例共享。这与为每个实例提供相同的函数副本相同。

我找不到答案:

为什么类中的箭头函数会生成“使用服务器”错误?

JavaScript Next.js 箭头函数

评论

0赞 Bergi 10/2/2023
您已经使用了类字段语法,该语法在每个实例上创建一个具有新函数的自己的属性。方法定义语法在原型上创建一个不可枚举的属性。

答: 暂无答案