将数据传递给 Reactstrap 模态
Passing data to Reactstrap modal
我的应用程序中有一些类别。对于每个类别,我想添加一些图像。所以我在 reactstrap 中添加了一个 Modal 来显示一个模态 window 来添加一些文件和描述。到目前为止一切都很好。但是当我单击启动模式按钮(在此处添加文件)时,问题就来了,我无法将 id 传递给 Modal。我尝试使用 useState 挂钩为变量设置一个值,但只有在模式关闭后它才会获得一个值。
我的名字缩写像
const [categories, setCategories] = useState([])
const [categoryId, setCategoryId] = useState()
const [modal, setModal] = useState(false)
const toggle = (id) => {
setCategoryId(id)
setModal(!modal);
}
然后是我的显示类别的代码
{ categories.map( cat => (
<div className="card border-0 rounded-0 img-thumbnail">
<img src={'assets/images/image_upload.jpg'} value={t._id} className="img-thumbnail" onClick={()=>toggle(cat._id)} alt="..."/>
</div>
)) }
<Modal
isOpen={modal}
toggle={toggle}
centered={true}
>
<ModalBody>
<div className="p-2">
<form>
<div className="form-group">
<input type="file" className="form-control-file" id="exampleFormControlFile1"/>
</div>
<div className="form-group">
<input type="text" className="form-control" id="exampleInputPassword1" placeholder="Caption Title"/>
</div>
<div className="form-group">
<textarea className="form-control" placeholder="Description" id="exampleFormControlTextarea1" rows="3"></textarea>
</div>
<button type="submit" className="btn btn-form">Upload</button>
<span onClick={toggle} style={{cursor: 'pointer'}} className="ml-2 btn btn-form-outline">Cancel</span>
</form>
</div>
</ModalBody>
</Modal>
只有在模式关闭后我才能获得类别 ID。如何设置值以及模态 window?????
这里的问题是 toggle
也会在模式打开和关闭时被调用。如果模式应该关闭或打开,您可以使用 toggle
函数专门用于设置状态,并在单独的调用中设置 id
。
const toggle = () => {
// setCategoryId(id) // remove this
setModal(!modal);
}
<img onClick={()=>{toggle(); setCategoryId(cat._id)}} />
我的应用程序中有一些类别。对于每个类别,我想添加一些图像。所以我在 reactstrap 中添加了一个 Modal 来显示一个模态 window 来添加一些文件和描述。到目前为止一切都很好。但是当我单击启动模式按钮(在此处添加文件)时,问题就来了,我无法将 id 传递给 Modal。我尝试使用 useState 挂钩为变量设置一个值,但只有在模式关闭后它才会获得一个值。
我的名字缩写像
const [categories, setCategories] = useState([])
const [categoryId, setCategoryId] = useState()
const [modal, setModal] = useState(false)
const toggle = (id) => {
setCategoryId(id)
setModal(!modal);
}
然后是我的显示类别的代码
{ categories.map( cat => (
<div className="card border-0 rounded-0 img-thumbnail">
<img src={'assets/images/image_upload.jpg'} value={t._id} className="img-thumbnail" onClick={()=>toggle(cat._id)} alt="..."/>
</div>
)) }
<Modal
isOpen={modal}
toggle={toggle}
centered={true}
>
<ModalBody>
<div className="p-2">
<form>
<div className="form-group">
<input type="file" className="form-control-file" id="exampleFormControlFile1"/>
</div>
<div className="form-group">
<input type="text" className="form-control" id="exampleInputPassword1" placeholder="Caption Title"/>
</div>
<div className="form-group">
<textarea className="form-control" placeholder="Description" id="exampleFormControlTextarea1" rows="3"></textarea>
</div>
<button type="submit" className="btn btn-form">Upload</button>
<span onClick={toggle} style={{cursor: 'pointer'}} className="ml-2 btn btn-form-outline">Cancel</span>
</form>
</div>
</ModalBody>
</Modal>
只有在模式关闭后我才能获得类别 ID。如何设置值以及模态 window?????
这里的问题是 toggle
也会在模式打开和关闭时被调用。如果模式应该关闭或打开,您可以使用 toggle
函数专门用于设置状态,并在单独的调用中设置 id
。
const toggle = () => {
// setCategoryId(id) // remove this
setModal(!modal);
}
<img onClick={()=>{toggle(); setCategoryId(cat._id)}} />