create-react-app Bug: 与执行/es6相关

chhkpiq4  于 1个月前  发布在  React
关注(0)|答案(3)|浏览(113)

React版本:"^17.0.2"

重现步骤

  1. 创建一个React应用。在其中引入Redux。
  2. 在index.js中导入该store,并在渲染根组件时提供它。
    链接到代码示例:

当前行为

即使控制到达let赋值语句,之前的导入也是未定义的。有人能解释为什么会这样吗?
此外,以下显示了虽然打包了内部变量,但它们是定义的:

为什么JavaScript中存在这种行为?这是预期的行为还是其他情况?
它是Mozilla Firefox浏览器(95.0.1)。

预期行为

请解释为什么在浏览器(Firefox 95.0.1)中会出现这种情况?因为这个原因,所有导入的变量都没有有效的值。如何在执行这些行之后使用它们?
请以更描述性的方式回答您的问题,而不仅仅是说这种行为是预期的。这到底是什么行为?如果存在这种情况,那么如何在下面的文件中使用任何导入的变量?如果即使在执行那一行之后也不会导入所需的内容,那么导入它们的目的是什么?
据我所知,JavaScript是一种同步语言,除了特定的功能,如Promise、async/await,我认为它的设计就是如此,这就是为什么它的行为的不可预测性令人困惑。

gv8xihay

gv8xihay1#

这似乎与React本身无关。
如果有什么关系的话,这可能是某种类型的打包器问题。

a5g8bdjr

a5g8bdjr2#

也可能。即使我使用最新的bundler版本,我也会遇到这个问题。我还为其他人创建了一个虚拟仓库,供他们查看$x_{1e0f1}x$。

rur96b6h

rur96b6h3#

在接下来的问题中,他们基本上否认这是一个捆绑器的问题,但也没有提到任何适当的逻辑原因:
webpack/webpack#15215
您能分享一下对此的看法吗?

相关问题