Я пытаюсь создать приложение для спортзала, где я могу представить несколько упражнений и назвать это «тренировкой».Я работал до определенного момента, но он падает, потому что мой объект назван, а не анонимно, что затрудняет масштабируемость
<Formik
initialValues={''}
onSubmit={values => {this.props.submitExercise(values)}}
render={() => (
<Form>
{this.state.exercises.map((exercise, index) => (
<div>
{console.log(exercise, 'ex')}
<label htmlFor="exercise">Exercise</label>
<Field name={`exercise${index}.name`} />
<label htmlFor="reps">Reps</label>
<Field name={`exercise${index}.reps`} type="number" />
<label htmlFor="sets">Sets</label>
<Field name={`exercise${index}.sets`} type="number" />
<label htmlFor="weight">Weight</label>
<Field name={`exercise${index}.weight`} type="number" />
</div>
))}
<button type="submit">Submit</button>
</Form>
)}
/>
export const submitExercise = workout => {
console.log(workout) // workout here is coming through as {exercise0: {...}}
return (dispatch, getState) => {
dispatch({ type: 'SUBMIT_EXERCISE', workout })
// dispatch(saveStateToServer(getState().workouts))
}
}
Мне интересно, как лучше заполнить, скажем, X количествоупражнения.каждый с именем, повторениями, набором, весом и т. д. в качестве объекта, а затем они представляются в виде массива.в настоящее время это происходит с жестко закодированным именем объекта, как.
exercise0: {
// exercise info
}
но это означает, что когда дело доходит до редукции, мне нужно получить данные через action.workout.exercise0
, что не очень хорошо или масштабируемо