在React中从其他页面打开对话框

约瑟夫

当我单击用户列表上DELETE功能按钮时,我正在打开一个对话框组件当我单击它时,应显示对话框组件。我的问题是为什么我无法打开它。我正在使用redux将数据传递给它。

请查看此代码和框链接

点击这里

import { dialogConstants } from "../constants";

export const initialState = {
  title: null,
  details: null,
  isOpen: null
};

const dialogReducer = (state = initialState, action) => {
  console.log(action.payload);
  switch (action.type) {
    case dialogConstants.SET_DIALOG_DETAILS:
      return {
        ...state,
        isOpen: action.payload.isOpen,
        title: action.payload.title,
        details: action.payload.details
      };
    default:
      return state;
  }
};

export default dialogReducer;
麦可

您还没有导入Dialogsuser.js因此,当您单击按钮时,对话框将不会打开。试试这个:在user.js

...
import DeleteDialog from "./dialog";

import { useDispatch } from "react-redux";
import { deleteUser } from "./actions";

export default function User() {
  const dispatch = useDispatch();
  const [selectedUser, setSelectedUser] = React.useState({});
  const [open, setDialogOpen] = React.useState(false);

  const handleOnDelete = user => {
    setSelectedUser(user);
    setDialogOpen(true);
  };

  const handleOnAgree = () => {
    // do action to handle on agree deleting an user
    dispatch(deleteUser({ title: "Delete User", details: selectedUser }));
    setDialogOpen(false);
  };

  return (
    <div>
      <Paper>
        <TableContainer>
          <Table stickyHeader aria-label="sticky table">
            <TableHead>
              <TableRow>
                <TableCell>First Name</TableCell>
                <TableCell>Last Name</TableCell>
                <TableCell>Email Address</TableCell>
                <TableCell>Actions</TableCell>
                <TableCell />
              </TableRow>
            </TableHead>
            <TableBody>
              <TableRow>
                <TableCell>JJJ</TableCell>
                <TableCell>BBB</TableCell>
                <TableCell>enfoie</TableCell>
                <TableCell>
                  <Button variant="contained">Edit</Button>
                  <Button
                    variant="contained"
                    onClick={() => handleOnDelete({ id: 1, name: "JJJ" })}
                  >
                    Delete
                  </Button>
                </TableCell>
              </TableRow>
            </TableBody>
          </Table>
        </TableContainer>
      </Paper>
      <DeleteDialog
        user={selectedUser}
        open={open}
        onAgree={handleOnAgree}
        onDisagree={() => setDialogOpen(false)}
      />
    </div>
  );
}

dialog.js

import React from "react";

import Button from "@material-ui/core/Button";
import Dialog from "@material-ui/core/Dialog";
import DialogActions from "@material-ui/core/DialogActions";
import DialogTitle from "@material-ui/core/DialogTitle";
import Slide from "@material-ui/core/Slide";

const Transition = React.forwardRef(function Transition(props, ref) {
  return <Slide direction="up" ref={ref} {...props} />;
});

const DeleteDialog = ({ user, open, onAgree, onDisagree }) => {
  return (
    <div>
      <Dialog
        open={open}
        TransitionComponent={Transition}
        keepMounted
        onClose={onDisagree}
        aria-labelledby="alert-dialog-slide-title"
        aria-describedby="alert-dialog-slide-description"
      >
        <DialogTitle id="alert-dialog-slide-title">
          <span style={{ fontWeight: "bold" }}>
            {" "}
            User: {user.name} - {user.id}
          </span>
        </DialogTitle>
        <DialogActions>
          <Button variant="contained" size="small" onClick={onDisagree}>
            Cancel
          </Button>
          <Button variant="contained" size="small" onClick={onAgree}>
            Confirm
          </Button>
        </DialogActions>
      </Dialog>
    </div>
  );
};

export default DeleteDialog;

使用复选框和子标题编辑选择

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Outlook加载项在其他打开的Outlook中显示相同的对话框

来自分类Dev

其他路径组件中的“渲染超时”对话框

来自分类Dev

jQuery对话框打开iframe,并在其他位置单击时关闭

来自分类Dev

一些打开的文件对话框看不到其他分区

来自分类Dev

单击“如何防止此页面创建其他对话框”时如何检测

来自分类Dev

弹出确认对话框后如何导航到其他页面

来自分类Dev

防止此页面创建其他对话框导致无限循环

来自分类Dev

注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

来自分类Dev

注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

来自分类Dev

卡在onClick打开对话框中

来自分类Dev

从对话框中打开文档

来自分类Dev

索引/匹配公式在没有其他公式的情况下会打开文件打开对话框

来自分类Dev

如何在引导中的页面加载时打开模式对话框

来自分类Dev

如何在不打开Safari或任何其他浏览器的情况下在我的应用程序中起诉Facebook SDK登录对话框?

来自分类Dev

在页面加载时打开jquery模态对话框

来自分类Dev

在页面/组件加载上打开模式对话框

来自分类Dev

在页面加载时打开jquery模态对话框

来自分类Dev

在twitter boostrap数据表中,确认对话框是否在其他页面的第1页上正常工作?

来自分类Dev

Ms BotBuilder:firstRun 对话框防止触发基于 LUIS 意图的其他对话框

来自分类Dev

如何在其他树枝+模式对话框Symfony2中渲染视图

来自分类Dev

在其他窗口和/或对话框中显示QLineEdit的输入?

来自分类Dev

Chrome浏览器中的“模型”对话框是否有其他替代项

来自分类Dev

Django Inlining在添加对话框中显示其他字段

来自分类Dev

如何在Bot框架中添加其他对话框

来自分类Dev

对话框已请求其他空间

来自分类Dev

如何显示来自其他类的对话框

来自分类Dev

Azure Bot NodeJS 等待其他对话框完成

来自分类Dev

如何在没有“离开页面”对话框或任何其他提示的情况下下载文件?

来自分类Dev

对话框打开空白

Related 相关文章

  1. 1

    Outlook加载项在其他打开的Outlook中显示相同的对话框

  2. 2

    其他路径组件中的“渲染超时”对话框

  3. 3

    jQuery对话框打开iframe,并在其他位置单击时关闭

  4. 4

    一些打开的文件对话框看不到其他分区

  5. 5

    单击“如何防止此页面创建其他对话框”时如何检测

  6. 6

    弹出确认对话框后如何导航到其他页面

  7. 7

    防止此页面创建其他对话框导致无限循环

  8. 8

    注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

  9. 9

    注册应用以从Safari的“共享”或“在...中打开”对话框打开无法正常工作。(尽管可以从其他应用程序使用)

  10. 10

    卡在onClick打开对话框中

  11. 11

    从对话框中打开文档

  12. 12

    索引/匹配公式在没有其他公式的情况下会打开文件打开对话框

  13. 13

    如何在引导中的页面加载时打开模式对话框

  14. 14

    如何在不打开Safari或任何其他浏览器的情况下在我的应用程序中起诉Facebook SDK登录对话框?

  15. 15

    在页面加载时打开jquery模态对话框

  16. 16

    在页面/组件加载上打开模式对话框

  17. 17

    在页面加载时打开jquery模态对话框

  18. 18

    在twitter boostrap数据表中,确认对话框是否在其他页面的第1页上正常工作?

  19. 19

    Ms BotBuilder:firstRun 对话框防止触发基于 LUIS 意图的其他对话框

  20. 20

    如何在其他树枝+模式对话框Symfony2中渲染视图

  21. 21

    在其他窗口和/或对话框中显示QLineEdit的输入?

  22. 22

    Chrome浏览器中的“模型”对话框是否有其他替代项

  23. 23

    Django Inlining在添加对话框中显示其他字段

  24. 24

    如何在Bot框架中添加其他对话框

  25. 25

    对话框已请求其他空间

  26. 26

    如何显示来自其他类的对话框

  27. 27

    Azure Bot NodeJS 等待其他对话框完成

  28. 28

    如何在没有“离开页面”对话框或任何其他提示的情况下下载文件?

  29. 29

    对话框打开空白

热门标签

归档