I have a nested array i add dynamically to my state and therefore i dont know the key/name of the nested array and I can not give the key/name of the nested array when i need to add, update, iterate or remove somethings in the array. An example is the function addClick
JavaScript
x
4
1
const addClick = (event) => {
2
// setValue({ event.target.name: [...value.(event.target.name)), ""] });
3
setValue({ DevOps: [value.DevOps, ""] });
4
};
The comment contains the way i am thinking it should be. So instead of writing “DevOps” which is the key/name of the array, i want it to use the value of “event.target.name”, but it will not use it. So how do i use the value when setting state of “value”??
other examples:
JavaScript
1
8
1
const removeClick = (event) => {
2
//let vals = [...value.(event.target.name))];
3
let vals = [value.DevOps];
4
let index = Number(event.target.id);
5
vals.splice(index, 1);
6
// setValue({ event.target.name: vals });
7
setValue({ DevOps: vals });
8
};
JavaScript
1
15
15
1
{/*value.(input[form].name).map((el, i) => ( */ }
2
{value.DevOps.map((el, i) => (
3
<div key={i}>
4
<Array
5
name={input[form].name}
6
placeholder={input[form].placeholder}
7
required={input[form].required}
8
key={input[form].placeholder}
9
el={el}
10
i={i}
11
handleChange={(event) => handleChange(event, input[form].input_type)}
12
removeClick={removeClick.bind(i)}
13
/>
14
</div>
15
))}
Advertisement
Answer
Close. Using a variable/expression/etc. as a property name in an object literal requires bracket notation:
JavaScript
1
2
1
setValue({ [event.target.name]: [value[event.target.name], ""] });
2
or:
JavaScript
1
2
1
setValue({ [event.target.name]: vals });
2