如何为 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
这是我的模型的架构:
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