可能的未处理的承诺拒绝(标识:0):错误:“ getLoginData”是只读的

Nap*_*apa 15 javascript react-native

如果我使用this.props使用props,从props进行的销毁将无法在async函数内部进行。

这是针对已经在生产中的本机应用程序,该应用程序在两天后突然开始出现此错误。我尝试使用升级Babel

但是到目前为止没有成功。

如果我改用this.props.getLoginData,它可以正常工作

如果我使用以下功能,那是错误的:

yo = async () => { // with async
  const { getLoginData } = this.props; // error
};
Run Code Online (Sandbox Code Playgroud)

虽然以下功能可以正常工作:

yo = () => { // without async
  const { getLoginData } = this.props;
  console.log(getLoginData); // works fine
};
Run Code Online (Sandbox Code Playgroud)

这也可以正常工作:

yo = async () => { // with async
  console.log(this.props.getLoginData); // works fine
};
Run Code Online (Sandbox Code Playgroud)

我希望这两种情况都能正常运行。

请克隆并运行此仓库以重现此错误。

请在README.md中找到运行项目和环境信息的步骤。

PS:您会在控制台中找到错误(按?? I)

mak*_*ova 6

在我看来,对babel的依赖似乎是造成此问题的原因。

当我查看自己的内容package-lock.json并进行搜索时,plugin-transform-regenerator我会看到版本7.4.57.4.4通过将版本添加到我的版本来锁定它,这package.json使我可以毫无问题地进行构建。

如果我不忽略我的问题,这个问题本来会更容易找到package-lock.json

综上所述,

npm i -E @babel/plugin-transform-regenerator@7.4.4