如何修复“警告:未知道具`更改背景,<div>标签上的'colorcode`。从元素中删除这些道具”错误?

时间:2017-02-01 01:44:03

标签: javascript html css angularjs reactjs

我在加载已用Webpack打包的页面时遇到问题。我使用React渲染页面HTML。当我在网络浏览器中打开我的HTML时,它会给我以下错误:

Warning: Unknown props `change-background`, `colorcode` on <div> tag. Remove these props from the element.
    in div (created by Component)
    in div (created by Component)
    in Component"

我的HTML是:

<html lang="en">
  <head>
    <link rel="stylesheet" type="text/css" href="cssWEB.css">
    <link href="https://fonts.googleapis.com/css?family=Bungee+Hairline" rel="stylesheet">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>React App</title>
  </head>
  <body data-ng-app="App">
    <div id="root"></div>
    <script src="public/bundle.js" type="text/javascript"></script>
  </body>
</html>

我的JS是:

import React from 'react';
import ReactDOM from 'react-dom';
import {Element, scroller} from 'react-scroll';


const Component = React.createClass({
    componentDidMount: function() {
        scroller.scrollTo('myScroller', {
            duration: 1500,
            delay: 500,
            smooth: true
        });
    },

    render: function() {
        return (
            <div>
              <link rel="stylesheet/less" href="style.less" type="text/css" />
              <script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>
              <link type="text/javascript" href="jscode.js"></link>


              <header>
                La Barriada
              </header>


              <div className="cube" change-background colorcode="#f45642" ref={(el) => { this.messagesEnd = el; }}>
                <div className="front"><span>Experience</span></div>
                <div className="back"></div>
                <div className="top"></div>
                <div className="bottom"></div>
                <div className="left"></div>
                <div className="right"></div>
              </div>

              <div className="wrap2">
                <div className="cube" change-background>
                  <div className="front" colorcode="#f45642"><span>Work</span></div>
                  <div className="back"></div>
                  <div className="top"></div>
                  <div className="bottom"></div>
                  <div className="left"></div>
                  <div className="right"></div>
                </div>
              </div>

              <div className="wrap3">
                <div className="cube" change-background>
                  <div className="front" colorcode="#f45642"><span>Contact</span></div>
                  <div className="back"></div>
                  <div className="top"></div>
                  <div className="bottom"></div>
                  <div className="left"></div>
                  <div className="right"></div>
                </div>
              </div>


              <Element name="link1">
                <div className="bg2" id="linkhere"></div>
              </Element>

              <div className="slide1">
              </div>

              <div className="slidechild1">
              <div className="centerbox">
              <div className="center">
                <ul>
                  <li data-ng-click="clicked2()" id="B1">aa</li>
                  <li id="B2">cc.i</li>
                </ul>
              </div>
              </div>
              </div>
            </div>

        );
    }
});

ReactDOM.render(
  <Component />,
  document.getElementById("root")
);

导致此错误的原因是什么?如何解决?

3 个答案:

答案 0 :(得分:1)

您可能需要仔细检查这些属性是否按React排序。您可以阅读docs page here

看起来不像那些DOM属性change-backgroundcolorcode  支撑。

编辑:相同的文档声明:

  

在React中,所有DOM属性和属性(包括事件处理程序)   应该是camelCased。例如,HTML   属性tabindex对应于React中的属性tabIndex。

因此,在JSX中分别尝试changeBackgroundcolorCode可能值得一试,看看是否可以解决问题。

答案 1 :(得分:1)

ReactJS目前不支持指定here的自定义属性。它剥离了未知属性。您可以通过在此SO answer中指定的componentDidMount方法中手动添加属性来解决问题。

答案 2 :(得分:0)

您不能将任何自定义属性用作道具。相反,您应该使用有效的html属性。 React支持几乎所有有效的html属性。 Here是React支持的有效html属性列表。