reactjs - 有没有聪明的方法在 React 中禁用多个 div?
问题描述
考虑以下代码,其中必须禁用多个 div:
<Select disabled={isDisabled}>
...
</Select>
<Input disabled={isDisabled}>
...
</Input>
<Button disabled={isDisabled}>
...
</Button>
有没有更好的方法,比如
divsToDisable = [ select, input, button ];
...
func() // being a function that returns true or false based on the div that is calling it
{
...
}
<Select disabled={func()}>
...
</Select>
<Input disabled={func()}>
...
</Input>
<Button disabled={func()}>
...
</Button>
解决方案
如果您正在尝试实现一个表单(猜测这是因为您正在使用输入),您可以描述您想要在字段集中禁用的输入并将字段集的disabled属性设置为 true 这将导致禁用所有输入一个字段集,一个简单的 HTML 实现。
您在组件内的渲染函数将如下所示:-
isDisabled = () =>{
//disabling logic
}
render() {
return (
<form>
<fieldset disabled={this.isDisabled()}>
<legend>Personalia:</legend>
Name: <input type="text" />
Email: <input type="text" />
Date of birth: <input type="text" />
</fieldset>
</form>
);
}
但是,如果您不需要禁用任何表单字段,则在您要禁用的所有 div 周围使用包装器,并在 div 上添加覆盖以创建禁用效果,如下所示。
推荐阅读
- html - 单击徽标并重定向到主页
- javascript - JS - 改变结果的颜色
- xcode - xcodebuild:在使用条件集错误覆盖参数时实现对宏的 XCBuild 支持
- azure - 服务总线队列中的分区数限制
- python - PyQt5 小部件未正确更新
- python - 查找嵌套列表中每个列表的最大总和,然后打印最高列表
- reactjs - 由 react-from 创建的每个对象的相同 id
- c - 如何删除 C 程序中的分段错误?
- azure-pipelines - 如何在 Azure Pipeline (Windows) 中安装 .msi 程序
- python - 如何处理 XML 解析器的编码?