Ant 디자인 라이브러리를 사용하여 양식 안에 드롭 다운 메뉴를 사용하려고합니다. 나는 체크 박스 필드에 소품을 매핑하지 못했습니다. 업데이트는 (분명히) 필드 장식 자에 의해 수행되지 않습니다. 메뉴를 부모 드롭 다운에 바인딩하는 방법을 모르겠습니다.Antd 양식의 드롭 다운 메뉴에 props를 매핑하는 방법은 무엇입니까?
인용 워드 프로세서 :
당신은 antd.Menu하여 메뉴 목록을 얻고, 당신이 필요로하는 경우에 대한 콜백 함수 onSelect를 설정할 수 있습니다.
하지만 소품에는 바인딩되지 않습니다. 유스 케이스를 어떻게 관리 할 수 있습니까?
function logSelection(value) {
console.log(value)
}
const MenuIterable = (props) => {
return (
<Menu onSelect={props.selection}>
{props.entries.map((e,i) =>
<Menu.Item>
<Checkbox checked={e.value} key={i}>
{e.name}
</Checkbox>
</ Menu.Item>
)}
</Menu>
)}
const FormFilters = Form.create({
onFieldsChange(props, changedFields) {
props.onChange(changedFields);
},
mapPropsToFields(props) {
return {
itemType: {
values: props.fields.itemType.values // [{name: "furniture", value:true}, ...]
}
};
}
})((props) => {
const { getFieldDecorator } = props.form;
return (
<Form layout="inline">
<FormItem label="">
{getFieldDecorator('itemType', {
rules: [{
required: true,
message: 'Item type required',
initialValue:props.fields.itemType.values
}],
})(
< Dropdown
trigger={['click']}
overlay={<MenuIterable selection={logSelection} entries={props.fields.itemType.values} />}
onVisibleChange={props.fields.handleDropDown.bind(props.fields.dropDowns.itemType, { value:'itemType' })}
visible={props.fields.dropDowns.itemType}
>
<a>
Item type <Icon type="down" />
</a>
</Dropdown>
)}
</FormItem>
</Form>
);
});
export default FormFilters;
도움 주셔서 감사합니다.
동일한 컨테이너로 관리되는 여러 개의 드롭 다운이 있으므로 visible 값과 onVisibleChange를 외부 값에 바인딩했습니다. 드롭 다운을 열면 다른 것들을 닫아야합니다! – Thook