I wanted to embed a new key/value pair in the corresponding indexed array of objects based on the onChange event.
However, this is done correctly, but adding additional elements to the array.
Source array of objects:
0:{data: {…}} 1:{data: {…}} 2:{data: {…}} 3:{data: {…}} 4:{data: {…}}
Achieved result:
0:{data: {…}} 1:{data: {…}} 2:{data: {…}, origin: "UK"} 3:{data: {…}, origin: "UK"} 4:{data: {…}} 5:"UK" 6:"UK"
Expected Result:
0:{data: {…}} 1:{data: {…}} 2:{data: {…}, origin: "UK"} 3:{data: {…}, origin: "UK"} 4:{data: {…}}
Below my code does this in a loop:
render: (rowData, indexes) => { return ( <SelectField id={`origin-${indexes.rowIndex}`} defaultValue="US" style={{ position: 'absolute' }} onChange={text => { this.setState( { generalPermitSelectedVehicles: [ ...generalPermitSelectedVehicles, (generalPermitSelectedVehicles[ indexes.rowIndex ].origin = text), ], }, () => { console.log({ generalPermitSelectedVehicles: this.state .generalPermitSelectedVehicles, }); }, ); }} menuItems={[ { label: 'America', value: 'US', }, { label: 'United Kingdom', value: 'UK', }, { label: 'Oman', value: 'Oman', }, ]} /> ); },
source share