问题标签 [strict-mode]

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 投票
5 回答
68317 浏览

reactjs - material-ui Drawer - findDOMNode 在 StrictMode 中已弃用

我有一个使用 StrictMode 的基于钩子(无类)的简单 ReactJS 应用程序。

我正在使用 React 版本 16.13.1 和 Material-UI 版本 4.9.10。

在 Appbar 中,我使用的是 Drawer。

我注意到当我打开抽屉时,我收到以下警告。

我在网上找到了有关此问题的一些参考资料,但仍然无法弄清楚如何解决此问题。

有人可以为这个问题添加一些解决方法吗?

谢谢

0 投票
0 回答
390 浏览

reactjs - 警告:在 StrictMode 中不推荐使用 findDOMNode

当我在尝试编辑时单击选择下拉字段时出现此错误。它说:findDOMNode 在 StrictMode 中已弃用。findDOMNode 被传递了一个在 StrictMode 中的 Transition 实例。相反,直接将 ref 添加到要引用的元素。

在此处输入图像描述

这是codeandbox的链接,

https://codesandbox.io/s/react-material-ui-0yqeo?file=/src/components/exercises/Form.js

0 投票
0 回答
350 浏览

reactjs - React Js解析错误:严格模式下不允许遗留八进制文字

我是 React Js 的新手,我有一个表单,我从用户那里得到一个字符串,我把这个字符串分成空格,然后我把它保存在我的状态变量中,这段代码工作正常:

然后我只是尝试添加变量以在数组中推送数据(如果它不存在“smth”),但出现此错误:解析错误:在严格模式下不允许传统八进制文字。

所以第一个代码工作正常,但它没有添加不匹配的字符串,这就是我想要添加的,希望我能得到一些帮助。谢谢你。

0 投票
1 回答
1106 浏览

node.js - 从 reactstrap 使用模态的警告

我有一些警告:

一个月前我没有。

应用程序工作正常,但我总是想以正确的方式清除所有警告。我假设我必须从 react-transition-group 添加过渡组件,但是我更喜欢在 CSS 中完成所有过渡和动画(对我来说,使用 react-waypoint 效果更好)。我的反应版本是 16.13.1

最后,我有两个问题。

1)这个警告的目的是什么,这意味着它为什么被弃用?

2)我应该在哪里插入这个 react-group-transition 转换或者我应该如何更改这个 Modal 以清除错误?

0 投票
0 回答
56 浏览

javascript - 在 StrictMode 中不推荐对 findDOMNode 进行查询

我是React新手,最近遇到了这个警告:findDOMNode 在 StrictMode 中已弃用。findDOMNode 被传递了一个在 StrictMode 中的 Transition 实例。相反,直接将 ref 添加到要引用的元素。

原来这个警告是由于我使用的库是Material UI我找到了一种解决方法,可以从这篇文章中删除这个恼人的警告。

现在不要误会我的意思,该解决方案就像魔术一样有效,但好奇的我想问一下,如果我执行上述解决方案,是否可能会出现任何副作用?

0 投票
1 回答
8323 浏览

javascript - findDOMNode 在 StrictMode 中已弃用。findDOMNode 被传递了一个 DraggableCore 的实例,该实例位于 StrictMode 内

Draggable 包在严格模式下导致错误:

警告:findDOMNode在 StrictMode 中已弃用。findDOMNode传递了一个 DraggableCore 实例,该实例位于 StrictMode 中。相反,直接将 ref 添加到要引用的元素。在此处了解有关安全使用 refs 的更多信息: https ://reactjs.org/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage

显然他们从来没有修复它https://github.com/STRML/react-draggable/issues/440,你有什么好的/优雅的解决方案吗?

0 投票
1 回答
222 浏览

javascript - 如何在不删除 react index.js 文件中的严格模式的情况下解决严格模式警告

当我<Button />以下面的形式使用时,它会说

Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of RefFindNode which is inside StrictMode. Instead, add a ref directly to the element you want to reference.

即使我使用了 useRef,它仍然显示此警告。那么我可以在不删除索引文件中的 <React.StrictMode></React.StrictMode> 的情况下修复它吗

0 投票
1 回答
95 浏览

typescript - 为什么过滤具有未定义键的对象会在 TypeScript 严格模式下出错

我用 TypeScript 编写了这段代码,并启用了严格模式。

它无法编译并出现此错误:

这是为什么?不是所有具有属性的对象在被ped之前都nameundefined过滤掉了吗?map如果我将select函数的返回类型更改为(string | undefined)[],则编译成功。

0 投票
0 回答
459 浏览

javascript - 反应严格模式下的 Material UI 控制台警告

随着应用程序的增长,控制台就像足球衫一样脏。


我是什么意思?

严格模式下的 Material UI 会抛出 FindDomNode 之类的警告,或者在 props中使用strings而不是使用。booleans问题是控制台在开发模式下就像一堵红墙,但我不想摆脱strict mode我想摆脱这些警告。

我有一个想法来创建一个“警告白名单”来隐藏众所周知的警告,但实际上,我不知道如何以正确的方式做到这一点。

目标是在控制台中清楚地看到新的、更危险的警告/错误。

也许有更好的方法来解决我的问题,但我的研究什么也没做。如果你有任何想法,我会很高兴听到它

0 投票
1 回答
66 浏览

mysql - 将 MySQL5.6 更新到 MariaDB10.3 后出现致命错误 - 由 sql 严格模式引起?

我的 ISP 已更新托管我的应用程序的共享服务器。它涉及从 MySQL 5.6 到 MariaDB 10.3 的更新。ISP 写道: MariaDB 在很大程度上与 MySQL 兼容,并且大多数 Web 应用程序都可以与 MariaDB 一起正常工作。换句话说,它们不会受到最小差异的影响。

但是,自从更新以来,我的许多 EDIT 和 INSERT 不再起作用并产生致命错误。在我的搜索中,我发现:

  • 问题在于写入数据库
  • 当并非所有字段都有值时似乎会发生,而我的应用程序中允许使用空字段

在我的进一步调查中,我遇到了: https ://forums.cpanel.net/threads/mariadb-10-2-disabling-strict-mode.635157/ 根据这个线程,我了解解决方案可能是在更改 sql 模式服务器设置来自:

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

到:

NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我试图通过 DirectAdmin/PHPAdmin 变量对其进行更改。由于它是共享服务器,因此我不允许更改设置,因此无法检查(需要超级权限)。

我现在有3个问题:

  1. 这会是解决方案吗?在这种情况下,我会要求我的 ISP 更改此设置。
  2. 这是修复它的最佳方法吗?
  3. 我可以用另一种方式解决这个问题吗?

建议非常感谢。