未捕获的不变违规:对象无效作为HTML表单的React子级

时间:2016-08-24 16:53:52

标签: object reactjs

我编写了一个函数来根据对象的键和值构建HTML表单,我试图在module mux41_tb; reg at,bt,ct,dt; reg [1:0] selectt; wire zt; mux41 test(.a(at),.b(bt),.c(ct),.d(dt),.select(selectt), .z(zt)); initial begin $monitor ("a=%d",at,"b=%b",bt,"c=%b",ct, "d=%b","select=%b",selectt,"z=%z",zt); selectt =2'b00; #5 selectt =2'b01; #5 selectt =2'b10; #5 selectt =2'b11; #5; end endmodule 方法中返回表单。但是,我一直收到错误:

render

这是我的ReactJs 0.14 - Invariant Violation: Objects are not valid as a React child方法:

createForm()

这是我的 createForm() { const obj = { } const object_fields = resourceFields.fields; let form = document.createElement('form'); _.forIn(object_fields, function(field_value, field_name) { let div = document.createElement('div'); div.setAttribute('className', 'form-control'); let label = document.createElement('label'); label.setAttribute('htmlFor', 'name'); label.innerHTML = field_name; let input = document.createElement('input'); input.setAttribute('className', 'form-control'); input.setAttribute('type', 'text'); input.setAttribute('ref', field_name); input.setAttribute('id', field_name); input.setAttribute('value', field_value); input.setAttribute('onChange', '{this.handleChange}'); div.appendChild(label); div.appendChild(input); form.appendChild(div); }) console.log(form) //this prints out fine return form } 方法:

render()

有谁知道可能会发生什么?我的表格在控制台打印出来就好了...先谢谢!

1 个答案:

答案 0 :(得分:2)

当您使用React时,您永远不会操纵实际的DOM节点。当您在render函数中构建UI时,JSX标记将转换为纯JavaScript(React.createElement函数调用),这将构建DOM的表示

因此,在您的情况下,您应该在createForm中返回JSX,而不是DOM元素。