- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 antd 开发 React 项目,我有一个复选框组件,当使用时将复选框标记为已选中,将显示一个选择选项。我将提供我的代码以使其清晰。
<Checkbox
key={identifier}
onClick={(e: any) => {
setSelectedCheckbox(e.target.checked);
console.log('test=1', e);
}}
name={label}
disabled={viewAssignment}>
{selectedCheckbox && (
<Select
disabled={viewAssignment}
key={identifier2}
onSelect={(e: any) => console.log('test=2', e)}
defaultValue={inputValue}
notFoundContent={
<CustomizeRenderEmpty message={t('NOT_FOUND')} />
}>
<Select.Option key={'data'} name={'data'} value={'data'}>
{'data'}
</Select.Option>
)
</Select>
)}
</Checkbox>
如果 selectedCheckbox
为 true 那么选择组件将被显示,但是当用户尝试选择一个选项时的问题 onSelect
函数将不会被调用 onClick
将被调用,而不是使用 false 值 e.target.checked
等于 false。
如果在选择中有任何更改,是否有任何方法可以在不影响 onClick
功能的情况下将 Select 组件置于复选框内?
任何建议都会有帮助,谢谢。
最佳答案
作为mr-rogers在他的评论中描述正确,推荐的设计是创建一个包含 Checkbox
和 Select
作为单独组件的父组件。否则,如果用户尝试点击 Select
,则始终会调用 Checkbox
中的 onChange
。这显然是错误的。
一个简单的示例可能如下所示(here 也是 Stackblitz):
import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import 'antd/dist/antd.css';
import './index.css';
import { Checkbox, Select } from 'antd';
const CheckboxDemo = () => {
const [selectedCheckbox, setSelectedCheckbox] = useState(false);
return (
<div>
<Checkbox
onChange={e => {
setSelectedCheckbox(e.target.checked);
console.log(e.target);
console.log('test=1', e.target.checked);
}}
name="Test"
>
Test
</Checkbox>
{selectedCheckbox && (
<Select
key="2"
style={{ width: 100 }}
onChange={e => console.log('test=2', e)}
>
<Select.Option key="data1" name="data1" value="data1">
data 1
</Select.Option>
<Select.Option key="data2" name="data2" value="data2">
data 2
</Select.Option>
</Select>
)}
</div>
);
};
ReactDOM.render(<CheckboxDemo />, document.getElementById('container'));
关于javascript - 在复选框内选择组件,antd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68519806/
我正在尝试将按钮和 div 底部的一些文本对齐,就像下面的示例中的价格和 checkout 按钮一样。最好的方法是什么。我制作了一个 div,对其设置了样式以获得正确的文本和图片。我只需要将按钮附加到
将内容放置在带圆 Angular 的框 div 中以使其不会重叠的正确方法是什么? 蓝框是白框父div 里面的内容div。我希望标题位于该父框内,以便它在顶部也有圆 Angular 。 当我尝试“溢出
让 SVG 内联 HTML 文档,带有一个 View 框“x y w h”。如何检查元素是否在 View 框内? 通过说元素,它可以是组内的嵌套子路径等等...... 所以我想我正在寻找 SVG 的内
有没有办法检查鼠标是否在屏幕上的某个框内。我不知道将 jQuery 变量导出为整数以在 Javascript if 语句 中使用。我知道这可以通过 div 实现,但我不想使用 div 因为我需要很多这
目前我有两个带文本的 div 框 1 和 2,在第三个 div 框内将它们包含在一起。 Sometimes text in box 1 is longer than text inside box2
我是一名优秀的程序员,十分优秀!