我一直在玩 React-Materialize 来帮助我学习 React,但是如果我的孩子在 CollapsibleItem 上有一个 onClick 处理程序,我会遇到 CollapsibleItem 组件的问题。
const HomeworkDetails = ({props}) => {
return (
<Collapsible className="homework-list">
{
props.homeworks.map(hwork => {
console.log(hwork.dateDue);
return hwork.student === props.student ? (
<CollapsibleItem className="card-content light-green purple-text text-darken-4" key={hwork._id}
header={<div><Col s={3}>{hwork.subject}</Col>
<Col s={3}>{hwork.dateSet.split("T")[0]}</Col>
<Col s={3}>{hwork.dateDue.split("T")[0]}</Col>
<Col s={3} onClick={(e) => {e.preventDefault(); alert('Hi');}}>{hwork.status}</Col>
</div>}>
<h6 className="homework-list-h6">Details:</h6>
{hwork.details}
</CollapsibleItem>
) : null
})
}
</Collapsible>
);
}
目的是当用户单击 CollapsibleItem 上的第 4 列(这是作业状态所在的位置)时,我想下拉一个允许状态列表,以便用户可以更改它。我目前使用一个简单的警报(下拉列表将是一个新组件)对此进行了存根,但是一旦在执行 onClick 处理程序后解除警报,CollapsibleItem 然后根据其当前状态展开/折叠。
当用户点击这个孩子时,我想禁止这种展开/折叠,但找不到阻止它的方法 - e.preventDefault() 没有做任何事情(我有一半预计它不会做)。
有任何想法吗?乔尔斯。