【发布时间】:2025-11-30 21:05:01
【问题描述】:
我最近为免费代码营制作了一个项目,其中涉及使用 React 制作鼓机。我创建了一个对象数组,其中包含多个键:“值”对,其中包含要在整个应用程序中使用的数据。
数组看起来像这样:
const sounds = [
{
key: 'Q',
id: 'heater-1',
url: 'https://s3.amazonaws.com/freecodecamp/drums/Heater-1.mp3'
}, {
key: 'W',
id: 'heater-2',
url: 'https://s3.amazonaws.com/freecodecamp/drums/Heater-2.mp3'
}, {
key: 'E',
id: 'heater-3',
url: 'https://s3.amazonaws.com/freecodecamp/drums/Heater-3.mp3'
}];
进一步在代码中,一个按钮使用一个函数来播放与<audio> 元素链接的声音:
playSound(e) {
const sound = document.getElementById(this.props.key);
sound.currentTime = 0;
sound.play();
}
this.props.key 与值 arr[i].key 相关联。单击按钮时,会抛出一个错误,指出const sound = document.getElementById(this.props.key); 的值为空。
当我将对象键“key”更改为“keyTrigger”以使调用 this.props.keyTrigger 的代码与值 arr[i].keyTrigger 相关联时,问题已解决并且值已正确调用,以便按钮按预期工作。
我只是想更好地理解为什么这个词的简单改变会造成如此大的差异。据我了解, Object.key 不是一种方法(如果我错了,请纠正我);是字面上使用“键”这个词作为键的名称吗?
非常感谢任何和所有帮助!
【问题讨论】:
标签: javascript html reactjs object syntax