reactjs - Checkbox.Group of ant design React 无法设置默认值
问题描述
我正在开发一个基于蚂蚁设计的反应功能应用程序。在使用 Checkbox.Group 时,我发现我无法在动态生成的选择框列表上设置默认值。我的标准是,当打开自定义模式时,根据传递的 loginId(一个整数值),默认情况下应该选中该复选框。如果我取消选择,那很好。但是在第一次打开模态时,应该设置默认值。我真的尝试了很长时间,不知道我到底错过了什么。如果你能帮忙,那就太好了。
这是我的代码,
export const ContactModal = props => {
const loggedInUser = props.loginUserDetail.id > 0 ? [props.loginUserDetail.id] : [];
console.log("loggedInUser= ",loggedInUser);
const title =
props.contactType === contactTypesEnum[1] ? 'Select MMS contact person' : 'Select Industry contact person';
return (
<Modal
title={title}
visible={props.isVisible}
width={'60%'}
afterClose={props.modalClose}
onCancel={props.handleContactModalCancel}
footer={[
<Button key="back" onClick={props.handleContactModalCancel}>
Cancel
</Button>,
<Button key="submit" type="primary" onClick={props.contactModalConfirm}>
{/*<Button key="submit" type="primary" onClick={props.inputSubmit}>*/}
Submit
</Button>
]}
>
{/*<Form key={props.contactList}>*/}
<Form>
<div style={{ overflowY: 'scroll' }}>
{/*<Checkbox.Group defaultValue={[defaultValue]} onChange={props.handleCheckedInput}>*/}
<Checkbox.Group defaultValue={loggedInUser} onChange={props.handleCheckedInput}>
<Row style={{ border: '1px solid #009FE3', paddingLeft: '10px' }}>
{props.contactList.map((elem: { fullName: string; id: number }, index: number) => {
return (
<Col key={index} span={8}>
<Form.Item>
<Checkbox value={elem.id}>{elem.fullName}</Checkbox>
</Form.Item>
</Col>
);
})}
</Row>
</Checkbox.Group>
</div>
</Form>
</Modal>
);
};
我传递的 props.loginUserDetail 看起来像,
export interface ContactLogin {
id:number;
fullName:string;
}
我非常正确地检查了 id 是否被填充并且具有非零正值。奇怪的是,如果我defaultValue={[12]}
对正确的复选框进行硬编码,但变量赋值defaultValue={[loggedInUser]}
在ant设计规范中我发现defaultValue类型应该是字符串所以我尝试使用,
const loggedInUser = props.loginUserDetail.id > 0 ? props.loginUserDetail.id.toString() : '';
但它也不起作用。如果变量值不可选择,那么 defaultValue={[12]} 也不应该工作。但是硬编码正在起作用。
这就是我调用自定义模式的方式,
这就是我调用模态的方式,
<ContactModal
isVisible={modalVisibilty}
//modalClose={modalClose}
contactList={contactList} //this would be number of contact returned
handleContactModalCancel={handleContactModalCancel}
contactModalConfirm={contactModalConfirm}
handleCheckedInput={handleCheckedInput}
//contactListError={contactListError}
contactType={contactType}
loginUserId={contactType === contactTypesEnum[2]?loginUserDetail.id:0}
//loginUserDetail={contactType === contactTypesEnum[2] ?loginUserDetail : {id:0,fullName:''}}
/>
有人可以帮我吗?非常感谢 !
解决方案
推荐阅读
- r - 如何使用 ggplot 从两个不同的变量中仅绘制一个响应类型?
- javascript - 在场景中多次添加相同的几何体?
- json - 通过链接服务器进行 AAS 处理:JSON DDL 请求 - 输入字符串以正确的格式打开
- node.js - NodeJS xRay 模块对象字符串 html 删除
- laravel - Laravel 应用程序不会向 gmail 帐户发送电子邮件通知
- android - 无法在 Android 上显示通知
- excel - VBA 错误 1004 - Range 类的 CopyPicture 方法失败
- azure - 如何使用设备代码身份验证在 Postman 中使用 Microsoft Graph API 获取 AzureChina 区域中的组织详细信息?
- javascript - 如何从 redux 操作重定向到组件页面
- c# - 串行端口连接 - 仅适用于断点