我正在开发一个前端由React供电的项目。我甚至不确定这是否相关(可能问题出在另一个显而易见的地方),但是因为我已经能够在没有React的情况下使一切正常工作,所以可以猜测它是&## 39;我与React的关系导致了这个错误。
在我的React模板(?)中,我添加了这段最简单的代码,它在表单中呈现:
if (this.state.indexColumns['0'].show === true) {
cols.splice(xKey + idxMod, 0, (
<DataTableStaticCell key={'index-' + k}>
{content}
</DataTableStaticCell>
<input type="hidden" name="order_id" value={indexId} />
));
} else {
cols.splice(xKey + idxMod + 1, 0, (
<input type="hidden" name="order_id" value={indexId} />
));
}
当我在浏览器中使用开发人员工具进行检查时,所有内容都正确呈现并且字段在那里,它具有正确的值,位于类似于它应该是的表单内。 呈现:
<input type="hidden" name="order_id" value="1" data-reactid=".0.2.0.0.1.0.0.$2.2.0.$2.$0.$0.$0.$rows.0.0.2.0.0.1.$0.1">
现在,每当我发布表单时,根本不会从该字段提交任何数据。我使用Chrome开发人员工具来捕获表单发送请求(任何更好的方法?)并且它不会出现在那里。
我已经尝试了迄今为止我能想到的一切:可见字段,非前缀值字段,不同类型的输入,不同的名称等......一些愚蠢的愚蠢错误正在破坏我的生活,现在已经坚持了两天。我甚至不敢相信自己。
感谢您的帮助:)
编辑:表格处理:
getFormData: function (validate) {
var invalid = false;
if (validate) {
invalid |= !this.state.form.validate();
if (invalid) {
logger.warn(this.state.form.errors().asData());
}
}
var formData = _.extend({}, this.state.form.cleanedData);
var dataTableKeys = this.findLayoutKeysByType('data_table');
dataTableKeys.forEach(function (tableKey) {
var ref = this.refs['dataTable' + tableKey];
}.bind(this));
return [!invalid, formData];
},
编辑2:我应该在开始处理项目之前添加<DataTableStaticCell>
已经存在,并且还包含一个<input>
字段,例如:{/ p>
<input type="text" value="" data-reactid=".0.2.0.0.1.0.0.$2.2.0.$2.$0.$0.$0.$rows.0.0.2.0.0.1.$0.$0.1.0">
这是我开始使用这种方法的主要原因。我的数据流与后面的示例之间是否有任何根本差异?