Я пока не эксперт по React, поэтому у меня есть к вам вопрос - как вызвать мое всплывающее окно из:
import {options, columns,convertToArray} from './consts'
const index = () => {
const {data, loading, error, performFetch} = fetchHook({path: "/xxx/yyy", fetchOnMount: true})
return (
<div className={classes.Container}>
<h1>List of products</h1>
<Divider className={classes.Divider} />
<ProductTable data={convertToArray(data)} options={options} columns={columns}/>
</div>
)
}
export default index;
consts. js
export const actions = (productPropertyId, showModal) => {
const productDetails = (productPropertyId) => {
}
const removeProduct = (productPropertyId, showModal) => {
actions(productPropertyId, showModal);
return (
<div className={classes.actionsContainer}>
<Button
onClick={() => productDetails(productPropertyId)}
> {"More"}
</Button>
<Button
const removeProduct = (productPropertyId, showModal) => {
actions(productPropertyId, showModal);
>{"Remove"}
</Button>
</div>
)
};
export const convertToArray = (productList) => {
let products = []
if (productList != null) {
productList.map(product => {
column1, column2, column3, actions(product.id)]
products.push(prod)
})
}
return products;
};
Мое всплывающее окно -> <FormDialog/>
на основе материалов реакции.
Можно ли вызвать всплывающее окно в этом месте?
У меня есть таблица материалов реакции с некоторыми столбцами. Последний столбец содержит 2 кнопки, одна из которых - «Удалить» (строка). Здесь я хочу вызвать мое всплывающее окно. Может быть, мне следует перестроить свою структуру?
ОБНОВЛЕНИЕ
Ниже мое всплывающее окно - мне интересно, как запустить это всплывающее окно с места выше:
const formDialog = (popupOpen) => {
const [open, setOpen] = React.useState(false);
const handleClickOpen = () => {
setOpen(true);
};
const handleClose = () => {
setOpen(false);
};
return (
<div>
{/*<Button variant="outlined" color="primary" onClick={handleClickOpen}>*/}
{/* Open alert dialog*/}
{/*</Button>*/}
<Dialog open={open} onClose={handleClose} aria-labelledby="form-dialog-title">
<DialogTitle id="form-dialog-title">Subscribe</DialogTitle>
<DialogContent>
<DialogContentText>
To subscribe to this website, please enter your email address here. We will send updates
occasionally.
</DialogContentText>
<TextField
autoFocus
margin="dense"
id="name"
label="Email Address"
type="email"
fullWidth
/>
</DialogContent>
<DialogActions>
<Button onClick={handleClose} color="primary">
Cancel
</Button>
<Button onClick={handleClose} color="primary">
Subscribe
</Button>
</DialogActions>
</Dialog>
</div>
);
}
export default formDialog;
ОБНОВЛЕНИЕ 2
Я обновил свой код, учитывая советы из вашего ответа, см. Выше. Могу ли я добавить параметр showModal в мой export const actions = (productPropertyId, showModal)
, а затем вызвать этот компонент с другим значением showModal? К сожалению, мое всплывающее окно не появляется, когда я нажимаю кнопку Удалить: (