html - 如果直接在带有按钮的 HTML 中,引导模式可以完美工作,但如果它包含在具有动态输入的 React 组件中,则不会响应
问题描述
我想在一个页面上有几个模式,所有模式都有独特的提示和按钮文本。每个都将由不同的按钮触发,当然有一个唯一的 id。目前,这工作得很好:
<button className="btn btn-alert text-uppercase text-center align-middle" data-toggle={'modal'}
data-target={'#nameModalDmg'}>Damage</button>
<div
className="modal fade"
id='#nameModalDmg'
role="dialog"
aria-labelledby='something'
aria-hidden="true"
>
<div className="modal-dialog modal-dialog-centered" role="document">
<div className="modal-content">
<button
type="button"
className="close"
data-dismiss="modal"
aria-label="Close"
>
<i className="bi bi-x"></i>
</button>
<div className="modal-sect pb-0">
<h5>'Something'</h5>
</div>
<div className="card content-card name-card">
<input
id="name"
name="name"
placeholder="Name"
type="number"
min="0"
value={value}
onChange={e => setValue(e.target.value)}
/>
</div>
<button
className="text-uppercase btn-primary modal-button"
onClick={() => submitFunction(value)}
data-dismiss="modal"
>
"Submit"
</button>
</div>
</div>
</div>
但是,如果我尝试将所有这些都放在一个组件中,即使文本仍然是硬编码的(相对于 id 的一些字符串插值和 'Something' 文本的自定义值),它根本不起作用!
const ManualEntryModal = () => {
const [value, setValue] = useState(null);
return (
<div
className="modal fade"
id={`#nameModalDmg`}
role="dialog"
aria-labelledby='something'
aria-hidden="true"
>
<div className="modal-dialog modal-dialog-centered" role="document">
<div className="modal-content">
<button
type="button"
className="close"
data-dismiss="modal"
aria-label="Close"
>
<i className="bi bi-x"></i>
</button>
<div className="modal-sect pb-0">
<h5>Something</h5>
</div>
<div className="card content-card name-card">
<FloatingLabel
id="name"
name="name"
placeholder="Name"
type="number"
min="0"
value={value}
onChange={e => setValue(e.target.value)}
/>
</div>
<button
className="text-uppercase btn-primary modal-button"
onClick={() => submitFunction(value)}
data-dismiss="modal"
>
Submit
</button>
</div>
</div>
</div>
)
}
const otherThing = () => {
return (
<button className="btn btn-alert text-uppercase text-center align-middle" data-toggle={'modal'}
data-target={'#nameModalDmg'}>Damage</button>
<ManualEntryModal />
)
}
非常清楚地在 DOM 中 id 是正确的,并且按钮的目标是模态的正确 id。所以我不知道为什么将模式放在反应组件中会突然破坏它。有任何想法吗?我不明白为什么使用 Bootstrap 类而不是 Bootstrap React 组件会导致任何麻烦,即使这样,将按钮放在具有模态类的组件内也会导致同样缺乏响应。
也没有抛出错误。
解决方案
推荐阅读
- php - Laravel 测试响应是否包含错误?
- c# - 以编程方式安装 ISO 不起作用
- webhooks - 如何在不使用 ifttt 的情况下将 webhook 与谷歌助手集成?
- python - Django 使用欧几里得距离过滤对象
- python - 使用 GTK3 套接字在另一个窗口中嵌入窗口(Python)
- ios - 我想将模态 tableView 单元格数据返回到主视图
- model - 使用来自半连续目标的信息创建改进的二元分类器?
- c# - 如何从列是 C#.net 中字符串的一部分的数据表中进行选择
- spring - Spring JPA @OneToMany Repository.save() 方法返回的实体的实体为null
- c++ - 合并两个排序数组我哪里出错了。它们需要在 O(1) 空间复杂度中合并