javascript - React/MaterialUI - 如何编辑我的多输入以显示与我的选项不同的占位符?
问题描述
我有一个输入字段/下拉菜单,其中包含两个 JSON 对象,symbol
并且company
.
export default function SymbolInput() {
const [data, setData] = useState({ companies: [] });
const classes = useStyles();
useEffect(() => {
Axios.get("https://app.url.io/").then((res) => {
setData({ companies: res.data });
});
}, [setData]);
return (
<div className={classes.root}>
<Autocomplete
multiple
options={data.companies}
getOptionLabel={(option) => option.symbol + ' | ' + option.company}
filterSelectedOptions
renderInput={(params) => (
<TextField
{...params}
variant="outlined"
label="Companies"
/>
)}
/>
</div>
);
它的样子:
我想保持下拉菜单不变,当用户使用 选择或输入字段时textfield
,我希望公司符号仅显示为占位符,而不是符号 + 公司名称。
例如,上面图像的占位符是A AAPL ABBV ABMD
我怎样才能做到这一点?
解决方案
查看您的示例代码,看起来AutoComplete
'propgetOptionLabel
是呈现标签的函数。
现在是
getOptionLabel={(option) => option.symbol + ' | ' + option.company}
所以只显示符号,它可能只是
getOptionLabel={(option) => option.symbol}
编辑:它看起来AutoComplete
也接受一个renderOption
道具。如果您希望下拉元素和文本字段具有不同的渲染,请同时使用。
getOptionLabel={(option) => option.symbol + ' | ' + option.company}
renderOption={(option) => option.symbol}
编辑 2:如果您想要自定义行为,您必须自己跟踪搜索文本并使用filterOptions
道具并创建自己的搜索功能。这是一个功能示例的代码框。您必须根据自己的需要对其进行调整。
https://codesandbox.io/s/material-demo-forked-4ibur?file=/demo.js
推荐阅读
- python - 为什么这两行代码在 Pytorch 中给了我不同的输出,这是否解释了奇怪的参数?
- selectinput - RShiny中用户选择输入的动态平均值
- javascript - 如何使用预定义函数关闭 JQuery 对话框?
- azure - Azure - 我应该在 Azure 函数还是逻辑应用中配置重试策略
- node.js - 从 Node.js 清除 ZSH pwd 提示
- azure - 避免与 Azure Devops 中的专用 ScaleSet 发生主机名冲突
- github - 如何在 README (GitHub) 中创建均匀分布的列和行
- python - VAR模型和协方差矩阵的稳健估计
- google-apps-script - 创建脚本以将自定义排序范围应用于 Google 表格
- amazon-web-services - Terraform 错误:ClientException:指定卷参数时,只能使用一种卷配置类型