[违规] 向“DOMNodeInserted”事件添加了同步 DOM 突变侦听器。考虑使用 MutationObserver 来使页面响应更快。
关于此警告还有另一个问题。我已经在那里回答了解决该问题的方法,这不是这个问题的原因。(对于那些想知道的人:如果您向事件处理程序添加 setTimeOut 函数,此警告就会消失,因此它不再同步)
真正的问题是:“DOM 突变监听器”是什么意思?或者什么是“DOM 突变监听器”?它有什么作用?我问过老师,他也不知道。他建议这可能是现在已弃用的东西,但我觉得它的出现是有原因的,我想完全理解它,以防我将来遇到类似的错误,但与“DOM 突变侦听器”不同。
完整警告:
react-dom.development.js:2592 The specified value "" does not conform to the required format. The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
该代码运行良好。它正在做它应该做的事情,即:每个输入都会更改按下按钮后出现/更新的方块的背景颜色。
代码正常工作并且警告没有出现的唯一实例是在开发过程中,因为我正在弄乱颜色输入,并且我试图更改与输入属于同一组件的一部分的模拟div的背景。我第二次解除状态时它开始表现得像这样。
但最好的部分是:当我告诉 Console.log this.state.color.hex (这是更改背景颜色的值)时,它 console.logs "#00ff40" "#ff0000" "#0000ff" 并且“#ffff00” - 这就是为什么我不知道如何摆脱这个警告。
我不认为这个错误是由changeHandler函数引起的。我有这个函数的许多不同版本,它对这个警告影响很小。同样,此警告的另一个问题(Warning when using color control in React JS)有另一个完全不同版本的changeHandler函数,并且仍然有相同的错误。而且我最初对 value color 属性的所有实例都有一个单一的 changeHandler 函数,但错误仍然存在。但如果是的话——我很想知道如何改变它,如果这意味着摆脱这个警告。
结构概要为:
复选框 => ButtonPerSquare =>HOME
方块 => SquaresWrapper =>HOME
然后,Home 将两者合并,并在单击按钮时渲染方块,该按钮也在 Home 上。
Checkbox.js: //我知道这不是一个合适的名称,但它已经在我的每个新项目的模板上被这样调用了。
import React from "react";
class CheckBoxes extends React.Component {
render() {
return …Run Code Online (Sandbox Code Playgroud)