SOUtility.setSelectReadonly(“detail-0-widthDivi”, true); 修改为React+antd 写法
时间: 2024-11-22 19:37:10 浏览: 4
react-antd-ts-admin:react + antd + typescript的后台管理系统
5星 · 资源好评率100%
在React + Antd 中,如果你想设置某个组件为只读状态,你可以使用`Form.Item`的`readOnly`属性。假设你想控制一个名为"detail-0-widthDivi"的`Input`或`Checkbox`等控件的只读状态,可以这样做:
```jsx
import { Input } from 'antd';
// ...
const { InputItem } = Form.create();
function YourComponent() {
const setReadOnly = (name, isReadOnly) => {
// 这里是一个模拟的函数,实际应用中可能会从state或props获取真实的控件引用
// 假设我们有一个state来保存组件的状态
const componentRef = this.form.getFieldDecorator(name).getControl();
if (componentRef) {
componentRef.readOnly = isReadOnly;
}
};
return (
<Form.Item
name="detail-0-widthDivi"
ref={name => (this.detail_0_widthDiviRef = name)}
rules={[{ type: 'string' }]}
readOnly={true} // 设置默认为只读
onChange={() => {}}
onReadyChange={(val) => setReadOnly('detail-0-widthDivi', !val)} // 当值改变时更新状态
label="详细信息"
>
<Input />
</Form.Item>
);
}
// 使用时通过ref访问并修改只读状态
setReadOnly('detail-0-widthDivi', true);
```
这里,`detail_0_widthDiviRef`是用于保存输入元素的ref,然后在需要的时候通过`setReadOnly`方法更改其`readOnly`属性。
阅读全文