1.星期選擇互斥處理。如果選擇‘*||‘1,2,3,4,5,6’||‘0,6’’這三個其中的一個后,再選其他的,會將這些替換掉。
const getFromEvent1 = (args) => { const defaultVals = ['*', '1,2,3,4,5', '0,6'] if (args && args.length) { const lastVal = args[args.length - 1] if (defaultVals.includes(lastVal)) { return [lastVal]; } else { return args.filter(val => !defaultVals.includes(val)) } } return args; };
2.星期選擇互斥處理。如果選擇‘*||‘1,2,3,4,5,6’||‘0,6’’這三個其中的一個后,再無法選中其他的,除非先取消他們,才能再去選擇其他。
const getFromEvent2 = args => { if (args.some(val => val === '*')) { return ['*']; } else if (args.some(val => val === '1,2,3,4,5')) { return ['1,2,3,4,5']; } else if (args.some(val => val === '0,6')) { return ['0,6']; } return args; }
代碼實現:

<Col span={24}> <FormItem {...FormItemLayout} label="重復" name="day_of_week" rules={[{ required: true, message: '請選擇重復周期' }]} getValueFromEvent={e => getValueFromEvent1(e)} style={{ margin: '0.5rem 0' }} > <Select mode="multiple" showArrow allowClear style={{ width: '100%' }} onChange={handleChange} tokenSeparators={[',']} placeholder={'請選擇重復周期'} dropdownRender={menu => <div key={menu}>{menu}</div>} > <Option value={'*'} key={'*'}> 每天 </Option> <Option value={'1,2,3,4,5'} key={'1,2,3,4,5'}> 工作日 </Option> <Option value={'0,6'} key={'0,6'}> 周末 </Option> {children} </Select> </FormItem> </Col>