【发布时间】:2022-01-14 05:19:26
【问题描述】:
开始尝试从原始 HTML 中学习 React,我并没有真正理解某些对象和事件与数组的链接。
基本上我希望有一个用户可以选择一个选项的下拉菜单,然后让该下拉菜单用数组内部的某些值填充一些文本字段。
在这种情况下,文本字段 1 读取文件类型,文本字段 2 读取位深度
当前代码如下。注意,使用频谱组件所以 sp-picker 而不是 dropdown
我不知道如何让处理程序读取除事件之外的任何内容,并且很可能这段代码完全是错误的方法。
任何建议将不胜感激。
import React, { useState } from "react";
const SaveOptions = () => {
//Default Options HOOKS
const [filetype, setFileType] = useState("TIFF");
const [textfieldValue, setTextfieldValue] = useState("16");
//ARRAY
const filetypeOptionsArray = [
{ name: "TIFF", extention: "TIFF", bitdepth: "16" },
{ name: "PSD", extention: "PSD", bitdepth: "16" },
{ name: "JPG", extention: "JPG", bitdepth: "8" },
]
// Handlers
const handleFiletypeChange = (e) => {
setFileType(e.target.value);
setTextfieldValue(e.target.value);
};
return (
<div style={{ border: "1px solid #555", padding: "5px", borderRadius: "5px" }}>
<div className="row" >
<sp-picker size="s" style={{ flexGrow: 1 }}>
<sp-menu slot="options" onClick={handleFiletypeChange}>
{
filetypeOptionsArray.map((e) => {
return <sp-menu-item selected={filetype === e.value ? true : null} key={e.name} value={e.name}>{e.name}</sp-menu-item>
})
}
</sp-menu>
</sp-picker>
</div>
<sp-textfield value={filetype}></sp-textfield>
<sp-textfield value={textfieldValue}></sp-textfield>
</div>
);
}
export default SaveOptions;
【问题讨论】:
-
为什么附加到 onClick 事件而不是 onChange 事件?
标签: javascript reactjs react-hooks