如何为 TextField 标签的 onChange 重新分配 javascript 字典中的键值?

How to reassign a value of a key in a javascript dictionary for onChange of a TextField tag?

这是我的模型的架构:

const workoutSchema = mongoose.Schema({
  workouts: [
    {
      workoutName: String,
      sets: Number,
      reps: Number,
      weight: Number,
    },
  ],
});

这是在下面的文本字段中引用的 postData。

const [postData, setPostData] = useState({
    workouts: [{ workoutName: "", sets: "", reps: "", weight: "" }],
  });

访问上方的 workoutName,下方 我已将值设置为 postData.workouts["workoutName"] 似乎有效但不确定。我在 onChange 属性 上遇到问题,特别是 setPostData [workoutName]: e.target.value 中的第二个参数。我无法从架构访问锻炼词典中的 workoutName 键。

<TextField
              label="Workout"
              variant="outlined"
              value={postData.workouts["workoutName"]}
              onChange={(e) =>
                setPostData({ ...postData, workoutName: e.target.value })
              }

我试过 workouts["workoutName"]: e.target.value 但我在括号前收到语法错误,说它期待 ,。 error image。我也像其他语言一样尝试过 workouts.workoutName : e.target.value 但没有用。如何访问 workouts 对象中的 workoutName 以将其重新分配给在文本字段中键入的值(即:e.target.value)。

postData 是一个对象

workouts 是这个对象的一个​​属性

锻炼名称是 属性 数组中的一个 属性 锻炼

因此,要更改锻炼名称,您需要执行以下操作:

{...postData, workouts: [{...postData.workouts[0], workoutName: e.target.value}]}

要阅读锻炼名称,您需要执行以下操作:

postData.workouts[0].name