CLJS/Reagent:React 无法识别 DOM 元素上的 prop

问题描述

我看到 Javascript/React 中有很多类似的问题,但是我在使用 CLojureScript/Reagent 时遇到了这个问题,我不知道如何在不弄乱我所有应用程序状态名称的情况下解决它。

>

所以我在浏览器控制台中收到这些警告:

react_devtools_backend.js:2430 Warning: React does not recognize the `showWarning` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute,spell it as lowercase `showwarning` instead. If you accidentally passed it from a parent component,remove it from the DOM element.

这些似乎来自应用程序状态中的项目名称

(defonce app-state (reagent/atom {:show-warning "none"}))

我发现的唯一解决方案是将项目从 :show-warning 重命名:showwarning,但这会导致一堆难以阅读的项目。

我无法真正控制 Reagent 如何将诸如 :show-warning 之类的键重命名为“showWarning”,但作为 React 工作原理的基础,这似乎可以更简洁地处理此问题。

谢谢!

解决方法

React 真的不应该能够看到你的状态或关心其中的内容。我的猜测是你在道具位置的某个地方渲染你的状态。很可能在您的代码中的某个地方有 [:div @app-state]。可能您正在尝试呈现状态并且应该已经完成​​ [:div {} @app-state]

这对 Reagent 来说可能有点问题,因为 [:p @im-a-string] 会渲染字符串,但 [:p @im-a-map] 会将地图视为道具。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...