我是React和Typescript的新手,我有一个可编辑的表,其中包含以下默认值,可以更新(编辑)和提交。
这是原始和预期数据格式(参数),参数字段和值与充当ID的paramOrder相关联。
const parameters = {
paramList: [
{
paramOrder: 0,
paramInput: {
param: [
{
field: "PRODUCT_TYPE",
value: '"BT"'
},
]
},
paramOutput: {
param: [
{
field: "INCREMENTAL_EXPENSES",
value: "0.0028"
},
]
},
status: "Draft"
},
{
paramOrder: 1,
paramInput: {
param: [
{
field: "PRODUCT_TYPE",
value: '"BT"'
},
]
},
paramOutput: {
param: [
{
field: "INCREMENTAL_EXPENSES",
value: "0.0028"
},
]
},
status: "Draft"
},
]
};
我使用表单控件来处理字段更改,并合并了字段名称(类似于“0|产品类型”:“ABC”)后来将它们拆分成一个对象数组。
const setParam = (formData, parameters) => {
const objArray = Object.keys(formData).map(key => {
const [paramOrder, field] = key.split('|');
return {
paramOrder,
field,
value: formData[key],
};
});
return objArray;
};
这是我使用前面的代码处理更改后得到的当前格式,但是paramOrder是重复的,需要合并为一个,字段和值必须作为对象添加,就像上面的格式一样。
[
{
"paramOrder": "0",
"field": "PRODUCT_TYPE",
"value": "ABC",
},
{
"paramOrder": "0",
"field": "INCREMENTAL_EXPENSES",
"value": "12",
},
{
"paramOrder": "1",
"field": "PRODUCT_TYPE",
"value": "BT",
},
{
"paramOrder": "1",
"field": "INCREMENTAL_EXPENSES",
"value": "0.5",
},
]
我希望将上述更新后的值Map到原始数据格式,并且只将基于paramOrder替换的值和相应的值Map到给定字段(即PRODUCT_TYPE等)。
下面是代码和框链接-https://codesandbox.io/s/react-typescript-forked-qrx380?file=/src/ParameterTable.tsx
请让我知道,如果你需要任何额外的细节,谢谢帮助!!
1条答案
按热度按时间mwngjboj1#
我定义了一些类型:
代码如下: