gpt4 book ai didi

javascript - 如何从 React 中选项标签上的自定义属性检索数据

转载 作者:行者123 更新时间:2023-11-28 14:51:54 27 4
gpt4 key购买 nike

我有一个带有选择下拉列表的表单,其中包含通过循环对象构建的选项。每个选项都有一个关联的 value属性和自定义属性 data .

我可以检索value很好,但我无法访问 data属性。我尝试遵循发现的 JavaScript 模式 here但无济于事。返回的值为undefined .

这是具有以下形式的组件:

import React from 'react';
import Option from './Option';

class AddmenuItemForm extends React.Component {
createMenuItemTest(event) {
event.preventDefault();

const menuItem = {
subsectionObjectId: this.subsectionObjectId.value,
orderIndex: this.subsectionObjectId.selectedIndex.data,
}

this.props.addMenuItem(menuItem);

this.menuItemForm.reset();
}

render() {
const { subsections } = this.props;

return (
<div>
<form ref={(input) => this.menuItemForm = input} onSubmit={(e) => this.createMenuItemTest(e)}>
<select
ref={(input) => this.subsectionObjectId = input}
className="input mtm">
{
Object
.keys(subsections)
.map(key => <Option key={key} id={key} details={subsections[key]} />)
}
</select>

<button type="submit">Add New</button>
</form>
</div>
);
}
};

export default AddmenuItemForm;

这是选项组件:

import React from 'react';

class Option extends React.Component {
render() {
const { details } = this.props;
const key = this.props.id;

return (
<option value={key} data={details.numberMenuItems}>
{details.name}
</option>
)
}
}

export default Option;

渲染的 HTML 看起来像这样(<select> 部分):

<select>
<option value="KhEncads5F" data="11">Lunch</option>
<option value="rxGeTpqSDF" data="2">Dinner</option>
</select>

有没有办法检索所选 <option> 上的额外信息标签?

最佳答案

使用 ref 您可以访问 DOM 元素和 selectedOptions:

this.subsectionObjectId.selectedOptions[0].getAttribute('data-items')

检查这个工作示例:
https://jsfiddle.net/1rmftx4z/

关于javascript - 如何从 React 中选项标签上的自定义属性检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44168492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com