Reactjs警告:input是一个void元素标记,不能有`children`或使用`props.dangerouslySetInnerHTML`。检查render方法为null

时间:2016-05-12 09:02:37

标签: javascript jquery reactjs

有人可以告诉我为什么这个警告在控制台中支持?

React.createElement(
  'div',
   { className: 'form-group has-feedback' },
   React.createElement('label', { htmlFor:"lastname", className:"font-14"}, "Last Name"),
   React.createElement(
     "input", 
     { 
     id:"lastname", type: 'text', 
     className: 'form-control', placeholder: 'Last Name', 
     onChange: this.handleChange.bind(this, 'lname') 
     }
   )
)

4 个答案:

答案 0 :(得分:0)

我删除了下面代码中的otherProps并解决了问题。但我不知道导致问题的确切原因。

return _react2.default.createElement('img', _extends({ title: '\u4FEE\u6539' }, otherProps, { src: './imgs/icon/updateicon.png', onClick: this.props.onClick, style: { cursor: "pointer" } }))

答案 1 :(得分:0)

我对于以下代码有相同的错误:

import React from 'react';
const Search = () => {
    return  <input name="txtSearch" type="text"  >
              Hello
            </input>
}
export default Search;

我通过添加一个div作为根元素并删除关闭元素来解决它,如下所示:

import React from 'react';
const Search = () => {
    return <div><input name="txtSearch" type="text" />
             Hello
           </div>
}
export default Search;

答案 2 :(得分:0)

为了避免此问题,您始终可以将元素放在render()中。 像这样

ReactDOM.render(<div className= 'form-group has-feedback'>
        <label htmlFor = "lastname" className = "font-14"></label>
        <input id = "lastname" type =  'text', 
        className = 'form-control' placeholder = 'Last Name'
        onChange = 'function()' />
        </div>, 
document.getElementById("options"));

注意:请确保在index.HTML文件中创建ID为“ options”的元素。

答案 3 :(得分:0)

我在下面的代码中遇到了相同的错误,对我有用;

将输入标签设为自动关闭。

代替

<input> </input>

使用自闭标签。

<input />