我有两组JSON,Set 1andSet 2.设置1(sizingData
)被映射到这样的textFields:
const fillTextField = () => {
let result = [];
var keys = Object.keys(sizingHistory);
keys.forEach(function (key) {
result.push(sizingHistory[key]);
});
return(
{result?.map((data) => {
return ( <TextField variant="outlined" value={data} /> );
})}
)
}
我想映射Set 2(sizingHistory
)同样,但我在textField中获得[Object Object]
,而不是SizingId
&SizingComments
。这是我尝试映射sizinhHistory
:
const [sizingHistory, setSizingHistory] = useState("");
const fillHistoryTextField = () => {
let result = [];
var keys = Object.keys(sizingHistory["sizinghistory"]);
keys.forEach(function (key) {
result.push(sizingHistory["sizinghistory"][key]);
});
return (
{result?.map((data) => {
return ( <TextField variant="outlined" value={data} /> );
})}
)
}
1组
{
"SizingId": 20448,
"SizingComments": "This is a comment",
}
2组
{
"sizinghistory" : [
"SizingId" : 20448,
"SizingComments": "Old Comment",
]
}
sizingData
&sizingHistory
在它们自己的handleOpen
函数中被调用。UseEffect
不能在这种情况下使用,因为只有当用户在包含SizingId
的表中选择一行时才会显示数据。
你有[Object Object]作为JS在Set2
上转换对象到字符串,这是因为数据。seizingHistory是一个数组,你必须遍历它,然后遍历其中对象的键,以获得文本输入的所有数据。
这应该能得到你想要的
const [sizingHistory, setSizingHistory] = useState("");
const fillHistoryTextField = () => {
let result = [];
(sizingHistory["sizinghistory"]).forEach(element => {
const keys = Object.keys(element);
keys.forEach(function (key) {
result.push(element[key]);
});
});
return (
{result?.map((data) => {
return ( <TextField variant="outlined" value={data} /> );
})}
)
}