Javascript 不使用jquery将数据id传递给引导模式

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就可以实现这一点 谢谢你的帮助 更新 我尝试了下面的解决方案,但没有成功。以下是我所做的: //

我见过很多类似这样的问题,都使用了与Jquery完全相同的解决方案。但我不想在我的Reactjs上使用Jquery,只想将id传递给modal

这是我的密码:


&时代;
删除教育
&时代;
您确定要删除此教育吗?这是无法撤消的。
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})
}