I've got an array of objects that denote different steps in a certain process, where each step has an id and name. The array of objects looks something like this:
const steps = [ { id: 1, name: start }, { id: 2, name: middle }, { id: 3, name: end }]In one of my files, I am mapping through this array of objects to create a TextField of type date with Material UI. This looks like:
{ {steps.map((step, index) => { return (<TextField id={step.id} label={step.name} type={"date"} value={step.name} /> ) })}}My question is now two-fold:
- What is the best way to create a state for each of the steps so that I can create an
onChangeevent in the TextField component and store each of the dates in their respective states?
Right now, I've declared the state to pretty much mimic the array of objects, although, I'm not sure this is the best way because it can sort of get out of hand the more steps are added:
const [stepDates, setStepDates] = useState({ start: null, middle: null, end: null})- If I do declare the states to be as above, how do I actually set the value of each state in the
onChangeevent?
I've done it like this so far:
<TextField id={step.id} label={step.name} type={"date"} value={step.name} onChange={event => { const val = event.target.value setStepDates(prevState => { return { ...prevState, step.start: val } }) }/>However, with the above, I get an error around step.start saying:
Parsing error: ',' expected