问题标签 [react-16]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1334 浏览

reactjs - Material UI 0.2x 与 React 16 的兼容性

在尝试从 React 15.4 升级到 React 16.4.1(也将 react-dom 升级到 16.4.1)后,我从路由器收到以下错误消息:

编码:

render在此处定义,但随后在同一路由文件中返回:

我按照推荐的说明从 React 15.x 升级到 React 16.x

由于我发现了有关 Material-ui 与 React 16 兼容性的相关问题:

https://github.com/mui-org/material-ui/issues/8434

https://github.com/mui-org/material-ui/issues/7795

我想知道这个错误消息是否可能是由 material-ui 0.2x 和 React 16.x 之间的不兼容引起的,或者换句话说,我想知道是否有必要升级到 material-ui 1.x 以便能够使用 React 16.x

0 投票
0 回答
27 浏览

javascript - 公司道具未显示在 withHandler 内部更新

我正在使用 getDerivedStateFromProps 更新状态,以便在用户刷新页面时可以更新公司对象。它更新了我通过调试内部组件检查的公司对象,但是当我尝试更改字段中的值时,公司对象(props.company inside withHandler)没有更新公司对象。为什么呢?

这是代码

0 投票
2 回答
613 浏览

reactjs - 如果错误边界是错误类的一个实例,则错误边界不提供对错误的访问权限

我遇到了一个奇怪的行为。看到这个小提琴。在使用 React 16 错误处理机制时,即错误边界,我注意到error参数是空的。经过进一步调查,我意识到只有在抛出 Error 对象时才会出现这样的情况:

throw new Error('The world is very strange')

但是,当以这种方式抛出错误时:

throw 'The world is very strange'

该错误将在componentDidCatch.

求各位大神赐教。我希望继续使用new Error,因为建议使用它,它应该可以访问文件和抛出的行号。

让我们看一下代码。

0 投票
3 回答
1730 浏览

reactjs - 为什么 React 仍然使用错误边界渲染子组件

我使用 React 16功能Error Boundary:Profile.js

错误边界.js

应用程序.js

我看到功能组件在错误发生并被捕获后仍然被调用。谁能解释一下为什么render调用该函数。 在此处输入图像描述

对于不知道的人,请按照链接中的答案,您可以通过按键查看错误边界esc

0 投票
2 回答
691 浏览

javascript - React 16 中的 Fiber 对象和 React Element 有什么区别?

这个链接上(很多人提到,为了理解React 16的架构)它被提到: 在此处输入图像描述

甚至 React 中的 Elements 也是包含组件信息的普通 JS 对象,具有以下四个属性:

我现在想知道 Component、Element、Instance 和这个新的Fiber对象之间的明显区别。此外,这个新的 Fiber 对象是否与图片中提到的具有更多新属性的旧 Element 对象相同?

0 投票
1 回答
2602 浏览

javascript - 反应片段未在功能中呈现

下面是我的 React 组件,谁能理解为什么 react.Fragment 在 getResults 函数中根本不渲染?

我希望它最终显示来自 api 响应的结果。

我的 api 查询工作正常,我可以得到我想要的数据,但我很难在组件中显示它。

0 投票
2 回答
292 浏览

reactjs - 使用 Karma、Mocha 和 React 16.5 诊断重复的规范报告

我有一个使用 React 作为视图层的项目。为了测试它,我使用了 mocha、karma、karma-webpack 等。出于某种原因,在 React 16+ 中,karma 报告afterEach说 已经为两个规范运行了 3 次。这在 React 16+ 中发生,并且process.env.NODE_ENVisdevelopmentnot production时发生。

在之前对该问题的探索中,规范失败的原因可能会级联并污染后续规范。为了帮助确定根本原因,这是我能找到的最简单的例子。

我试图追踪这种行为,但被业力和套接字内部和周围的复杂性所困扰。考虑下面的示例,目前可在https://github.com/jneander/react-mocha获得。

Example.js

Example.spec.js

规格输出如下:

是什么导致重复报告?

为什么这发生在 React 16+ 而不是 React 15?

我该如何解决这个问题?

0 投票
1 回答
8594 浏览

javascript - 未捕获的类型错误:无法读取未定义的属性“注入”

升级到 16.x 后出现以下错误

请帮忙!!!

反应版本 --> "^16.4.2" react-tap-event-plugin -->"^3.0.3"

0 投票
0 回答
37 浏览

reactjs - 在 getDerivedStateFromProps() 中只返回修改后的状态属性是否重要?

我知道在 React 16 新的生命周期方法getDerivedStateFromProps()中,如果状态没有任何变化,我应该返回null,但我想知道我必须更新状态的情况,但修改的状态属性的数量可能会有所不同。如果我在返回的对象中包含未更改的多余属性,这有关系吗?

换句话说,是否更好:

或者我应该在验证它们没有改变之后更好地限制返回对象中的属性数量:

0 投票
0 回答
742 浏览

javascript - 反应组件未安装

我最近升级到 React v 16.5 并且我的一些组件遇到了问题。我在下面展示了其中一个在 16.4.1 之前使用过的。这是一个简单的下载图标,当状态 isOpen 为 true 时会呈现一个下拉菜单,如果您在其外部单击,它将关闭其下拉菜单。

我不断收到

无法在尚未安装的组件上调用 setState。这是一个无操作,但它可能表明您的应用程序中存在错误。相反,直接分配给this.state或在 DownloadIcon 组件中定义state = {};具有所需状态的类属性。

堆栈跟踪指向this.setState({ isOpen: false })in this.handleOutsideClick。我很困惑,因为我安装了日志,尽管 isMounted(我只是为了调试目的而添加的)实际上并没有设置为 true。

当我现在单击下载图标时,控制台会抛出警告并且无法呈现下拉菜单。任何帮助将不胜感激为什么此警告不断出现以及为什么它可能会破坏功能!