gpt4 book ai didi

reactjs - 如何使 Material UI 的自动完成字段成为必需?

转载 作者:行者123 更新时间:2023-12-04 11:24:40 24 4
gpt4 key购买 nike

我已经尝试了几种方法来使 Material UI 的自动完成类型字段成为必需的,但我没有得到我想要的行为。我已经将我的字段封装在 react hook 表单中 <Controller/>但没有运气。当没有向字段添加任何内容时,我想在提交时触发消息“字段是必需的”。
下面是代码片段,我没有删除注释,以便其他人更容易理解我之前遵循的方法 -

  <Controller
name="displayName"
as={
<Autocomplete
value={lists}
multiple
fullWidth
size="small"
limitTags={1}
id="multiple-limit-lists"
options={moduleList}
getOptionLabel={(option) => option.displayName}
renderInput={(params,props) => {
return (
<div>
<div className="container">
<TextValidator {...params} variant="outlined" label="Display Name*" className="Display Text"
name="displayName" id="outlined-multiline-static"
placeholder="Enter Display-Name" size="small"
onChange={handleDisplay}
// validators={['required']} this and below line does throw a validation but the problem is this validation stays on the screen when user selects something in the autocomplete field which is wrong.
// errorMessages={['This field is required']}
// withRequiredValidator

/>
</div>
</div>
)
}}
/>
}
// onChange={handleDisplay}
control={control}
rules={{ required: true }}
// required
// defaultValue={options[0]}
/>
<ErrorMessage errors={errors} name="displayName" message="This is required" />

最佳答案

您可以使用以下逻辑来使其工作。虽然这可能不是最好的解决方案,但有效。

<Autocomplete 
renderInput={(params) => (
<TextField
{...params}
label={value.length === 0 ? title : title + " *"} //handle required mark(*) on label
required={value.length === 0}
/>
)}
/>

关于reactjs - 如何使 Material UI 的自动完成字段成为必需?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62645466/

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