react-grid-layout示例<div>标签上的未知道具`_grid`

Csa*_*oth 3 reactjs react-grid-layout

我正在努力实施react-grid-layout.所有示例都通过_griddiv属性传递网格项配置:

createElement(el) {
  ...
  return (
    <div key={i} _grid={el}>
      ...
    </div>
  );
},
Run Code Online (Sandbox Code Playgroud)

在我的实施中:

return (
  <div key={i} _grid={el}>
    <DashboardTestWidget widgetName={el.name} menuName={this.props.menuName}/>
    <span className="remove" style={removeStyle} onClick={this.onRemoveItem.bind(this, i)}>x</span>
  </div>
)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

dashboard_view.browserify.browserified.js:1216 Warning: Unknown prop `_grid` on <div> tag. Remove this prop from the element. For details, see <URL ommitted because SO complained about URL shorteners>
  in div (created by DashboardLayout)
  in Resizable (created by GridItem)
  in DraggableCore (created by GridItem)
  in GridItem (created by ReactGridLayout)
  in div (created by ReactGridLayout)
  in ReactGridLayout (created by ResponsiveReactGridLayout)
  in ResponsiveReactGridLayout (created by _class)
  in _class (created by DashboardLayout)
  in div (created by DashboardLayout)
  in DashboardLayout
Run Code Online (Sandbox Code Playgroud)

我对React很新.我究竟做错了什么?


npm我使用的相关包版本:

"react": "^15.2.1",
"react-dom": "^15.2.1",
"react-grid-layout": "^0.12.7",
Run Code Online (Sandbox Code Playgroud)

Eni*_*jar 5

这是React在今年5月左右对其代码库进行的更改.有关详细信息,请参阅此拉取请求.

您收到此错误的原因是您尝试呈现无HTML识别的属性.

在HTML5中,您需要使用定义自定义属性data-*.

为了防止在您的情况下显示警告,您必须将渲染方法更改为此.

return (
    <div key={i} data-grid={el}>
        <DashboardTestWidget widgetName={el.name} menuName={this.props.menuName}/>
        <span className="remove" style={removeStyle} onClick={this.onRemoveItem.bind(this, i)}>x</span>
    </div>
);
Run Code Online (Sandbox Code Playgroud)

请注意,_grid已更改为data-gridreact现在将识别为有效的HMTL属性.

React需要注意的一点是,它允许您将自定义道具传递给自定义组件,但是当您将这些组件呈现为HTML时,它们需要是有效的HTML属性.