1 回答

TA贡献1790条经验 获得超9个赞
你要停止传播(event.stopPropagation()),当你点击Switch。这将阻止事件在链上冒泡,并且本质上将“忽略”父单击处理程序(onClick在本例中)。
const handleChange = name => event => {
event.stopPropagation();
setState({ ...state, [name]: event.target.checked });
};
<TableRow
className="h-40 cursor-pointer"
hover
role="checkbox"
aria-checked={isSelected}
tabIndex={-1}
key={n.id}
selected={isSelected}
onClick={event => handleClick(n)}
>
<TableCell component="th" scope="row" align="left">
<Switch
checked={state.checkedB}
onChange={handleChange("checkedB")}
value="checkedB"
onClick={e => e.stopPropagation()}
/>
</TableCell>
</TableRow>
编辑:
找到另一个之后的答案,不幸的是,上面的代码的工作方式将是一个额外的处理程序添加到Switch的组件onClick={e => e.stopPropagation()}
添加回答
举报