[英]React - the right way to show data using multiple react-bootstrap modal
為了學習React.js ,我使用react-bootstrap
創建了一個簡單的應用程序來顯示所有員工的個人數據。 但是Modal
有問題,我還沒有找到解決辦法。 問題是為所有Modal
顯示的數據是最后一個員工數據,在本例中是employee-03
。
看看這里的代碼(不是完整代碼), https://codesandbox.io/s/peaceful-wave-cjdo3
根據這篇文章, React-Bootstrap Multiple Modal我懷疑似乎所有Modal
都使用相同的 ID。 我感到困惑的是,如果以后要從 JSON 文件中檢索員工數據,如何為每個Modal
設置不同的 ID?
謝謝。
問候,埃羅爾。
您正在使用相同的 state 來切換所有模態。 如果您使用 React 的開發人員工具,您會看到每個模態都有其對應的數據。 我將在 state 或帶有 id 的字符串中創建一個布爾數組:
const [modalId, setModalId] = React.useState("");
const handleClose = () => setModalId("");
return (
<Row className="App">
{data.map((pax, i) => (
<Col xs={12} md={4} key={pax.Uniquename}>
<Card>
<Card.Body>
<Card.Title as="h4">{pax.Uniquename}</Card.Title>
<Button type="button" onClick={() => setModalId(`modal${i}`)}>
Open Modal
</Button>
</Card.Body>
<Modal
show={modalId === `modal${i}`}
onHide={handleClose}
aria-labelledby={`${pax.Uniquename}ModalLabel`}
centered
>
<Modal.Header id={`${pax.Uniquename}ModalLabel`} closeButton>
{pax.Uniquename}
</Modal.Header>
<Modal.Body>Full Name: {pax.Name}</Modal.Body>
</Modal>
</Card>
</Col>
))}
</Row>
);
PS:這只是一個例子,你可以重新考慮你的系統。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.