下面是我的状态对象
{
"customerdata":[
{
"name":"COMPANYNAME",
"title":"Company Name",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"CONTACT_FULL_NAME",
"title":"Contact Name",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"PHONENUMBER",
"title":"Phone Number",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"INDUSTRYTYPE",
"title":"Industry Type",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"ADDRESS_CITY",
"title":"Address City",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"FOLLOWUP",
"title":"Follow Up",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"IID",
"title":"IID",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"HASMORELINKS",
"title":"Has More Links",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"ISNEWOREDITED",
"title":"Is Now Order",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
},
{
"name":"BASECURRENCYIID",
"title":"Base Currency",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
}
],
"isAttrcall":true,
"linedata":{
"name":"COMPANYNAME",
"title":"Company Name",
"isvisible":false,
"Attrib":{
"caption":"",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
}
}
我正在将第0个索引数据传递给另一个组件,在那里我正在更新值并将更新后的值返回给主组件。
{
"name":"COMPANYNAME",
"title":"Company Name",
"isvisible":false,
"Attrib":{
"caption":"adasd",
"TextWrap":"",
"Bold":false,
"Italic":false,
"Font Name":"",
"FontSize":"",
"FontColor":"",
"BackGroundColor":"",
"Height":"",
"Width":""
}
}
如何更新主状态?
在此示例中,我将标题更新为“ adasd”。
需要帮助...
我尝试在主组件中打印控制台日志,我可以看到这些值。
这是子组件的数据
{
"_state": {
"data": {
"linedata": {
"name": "COMPANYNAME",
"title": "Company Name",
"isvisible": false,
"Attrib": {
"caption": "adasd",
"TextWrap": "",
"Bold": false,
"Italic": false,
"Font Name": "",
"FontSize": "",
"FontColor": "",
"BackGroundColor": "",
"Height": "",
"Width": ""
}
}
}
}
}
答案 0 :(得分:0)
您将需要使用prevState数据更新状态,还需要从列表中删除要首先修改的项目(例如,按名称过滤)。像这样:
const updateStateFunction = (updatedLineData) => {
this.setState(prevState => ({
...prevState,
linedata: updatedLineData,
}));
}