Javascript 不使用jquery将数据id传递给引导模式
我见过很多类似这样的问题,都使用了与Jquery完全相同的解决方案。但我不想在我的Reactjs上使用Jquery,只想将id传递给modal 这是我的密码:Javascript 不使用jquery将数据id传递给引导模式,javascript,html,reactjs,bootstrap-4,modal-dialog,Javascript,Html,Reactjs,Bootstrap 4,Modal Dialog,我见过很多类似这样的问题,都使用了与Jquery完全相同的解决方案。但我不想在我的Reactjs上使用Jquery,只想将id传递给modal 这是我的密码: &时代; 删除教育 &时代; 您确定要删除此教育吗?这是无法撤消的。 onClickDelete(教育。\u id,pid)} 数据类型=“模态” > 当然 接近 每次单击“确定”按钮时,都会使用第一个模式来删除。有没有办法不用jquery就可以实现这一点 谢谢你的帮助 更新 我尝试了下面的解决方案,但没有成功。以下是我所做的: //
&时代;
删除教育
&时代;
您确定要删除此教育吗?这是无法撤消的。
onClickDelete(教育。\u id,pid)}
数据类型=“模态”
>
当然
接近
每次单击“确定”按钮时,都会使用第一个模式来删除。有没有办法不用jquery就可以实现这一点
谢谢你的帮助
更新
我尝试了下面的解决方案,但没有成功。以下是我所做的:
// set id
const [id, setId] = useState(null)
const ngesetID = e => {
e.preventDefault()
let dataId = e.target.dataset["id"] || e.target.getAttribute("data.id")
console.log("ini ada kaga")
console.log(dataId) // it changes to current ID
setId(dataId)
}
useEffect(() => {
console.log("ID terbaru")
console.log(id) // Just to make sure and it really changed
}, [id])
onClick={e=ngesetID(e)}
>
&时代;
但每次我点击弹出模式的按钮,它总是指向第一个模式
<button
type="button"
className="btn btn-primary"
// onClick={() => onClickDelete(education._id, pid)}
onClick={e => cobaDoang(e, id)} // the 'id' revert back to the first ID modal
data-dismiss="modal"
>
Sure
</button>
onClickDelete(教育标识,pid)}
onClick={e=>cobadong(e,id)}//将“id”还原回第一个id模式
数据类型=“模态”
>
当然
我不确定我做错了什么?您不应该在ReactJS项目中使用jQuery,因为它本身就是一个Javascript框架 为了实现您想要做的事情,您可以在ReactJS中使用state,当状态改变时,它将更新DOM
我建议使用ReDux作为一个使用状态很重的项目,对于一个轻量级的使用状态,你可以考虑使用钩子。
< P>你不应该在一个ReaTJS项目中使用jQuery,因为它是一个JavaScript框架。 为了实现您想要做的事情,您可以在ReactJS中使用state,当状态改变时,它将更新DOM我建议使用ReDux作为一个使用状态很重的项目,对于一个轻量级的使用状态,你可以考虑使用钩子。< /P> < P>声明一个变量,如<代码> StRead De>/Cult>,并在<代码> <代码>和Myto.< /P>上使用它。
selectedId='';
...
{selectedId=education.\u id}>
...
onClickDelete(选择edid,pid)}>
...
在您的代码片段中:
{selectedId=education.\u id}
>
&时代;
删除教育
&时代;
您确定要删除此教育吗?这是无法撤消的。
onClickDelete(selectedId,pid)}
数据类型=“模态”
>
当然
接近
声明一个变量,如selectedId
,并在
和模式中使用它
selectedId='';
...
{selectedId=education.\u id}>
...
onClickDelete(选择edid,pid)}>
...
在您的代码片段中:
{selectedId=education.\u id}
>
&时代;
删除教育
&时代;
您确定要删除此教育吗?这是无法撤消的。
onClickDelete(selectedId,pid)}
数据类型=“模态”
>
当然
接近
获取属性并将其存储在一个状态中,然后在任何需要的地方使用它。
openModel=(事件)=>{
让dataId=event.target.dataset['id']或event.target.getAttribute(“data.id”);
this.setState({dataId:dataId})
}
获取属性并将其存储在一个状态中,然后在任何需要的地方使用它。
openModel=(事件)=>{
让dataId=event.target.dataset['id']或event.target.getAttribute(“data.id”);
this.setState({dataId:dataId})
}
我在您列出的代码中没有看到任何jQuery。你想替换的代码在哪里?是的,因为这正是我想要完成的。我想在不使用jquery的情况下获取ID,这是使用jquery的解决方案:$(document)。在(“click”、“.open AddBookDialog”上,函数(){var myBookId=$(this.data('ID');$(“.modal body#bookId”)。val(myBookId);//正如注释中指出的那样,//无需手动调用modal.///$(“#addBookDialog”).modal('show');})
我在您列出的代码中没有看到任何jQuery。您要替换的代码在哪里?是的,因为这正是我试图完成的。我想在不使用jQuery的情况下获取ID,这是使用jQuery的解决方案:$(文档)。在(“单击“,”。打开addBookDialog”,函数(){var myBookId=$(this).data('id');$(“.modal body#bookId”).val(myBookId);//正如在注释中指出的那样,//不必手动调用modal.//$('.#addBookDialog').modal('show');})
不,先生,我不使用jQuery,我也使用redux。我试图在没有jQuery的情况下传递id modals,这就是我问这个问题的原因。既然你已经对redux进行了积分,那么我建议在存储中启动一个变量。这个变量将显示在模型中,因此当这个变量更新时,它将反映在mod中al相应地。不,先生,我不使用jQuery,我也使用了redux。我试图在不使用jQuery的情况下传递id modals,这就是我问这个问题的原因。既然你已经对redux进行了积分,那么我建议在存储中启动一个变量。这个变量将显示在模型中,所以当这个变量
Get the attr and store it in a state and use it wherever you want.
<button
type="button"
className="btn btn-sm btn-danger float-right"
data-toggle="modal"
data-target="#educationModalCenter"
data-id={education._id}
onClick={this.openModel}
/>
openModel =(event)=>{
let dataId = event.target.dataset['id'] or event.target.getAttribute("data.id");
this.setState({dataId : dataId})
}