当前位置: 首页 > 知识库问答 >
问题:

在“反应材质”ui上显示对话框

葛承德
2023-03-14

我正在为我的React应用程序使用材料UI的对话框组件。如何将组件设置为变量,以便调用onShow()方法?

共有2个答案

卓雅达
2023-03-14

我建议阅读Dan Abramov关于如何在React中实现模式的回答。

为了使用material ui对话框,您可以将其示例中的DeletePostModel替换为以下内容:

import { deletePost, hideModal } from '../actions';
import React, {Component} from 'react';
import {connect} from "react-redux";
import {Button, Dialog, DialogActions, DialogTitle} from "material-ui";
import PropTypes from 'prop-types';

const DeletePostModal = ({ post, dispatch }) => (
  <Dialog open={true}>
       <DialogTitle>Delete post {post.name}?</DialogTitle>
            <DialogActions>
                 <button onClick={() => {
                      dispatch(deletePost(post.id)).then(() => {
                           dispatch(hideModal());
                      });
                  }}>
                        Yes
                  </button>
                  <button onClick={() => dispatch(hideModal())}>
                        Nope
                  </button>
        </DialogActions>
   </Dialog>
)

export default connect(
  (state, ownProps) => ({
    post: state.postsById[ownProps.postId]
  })
)(DeletePostModal)
莫翰藻
2023-03-14

添加对话框组件时,只需向其添加一个ref(ref=“Dialog”):

<Dialog ref="dialog" title="..." actions="...">
  dialog content
</Dialog>

然后您可以使用this从您的所有者组件代码中引用它。裁判。对话onShow(…)

对话框组件页面实际上在幕后使用了引用,正如您从其源代码中看到的那样。

 类似资料:
  • 从 1.2 版本开始, UI 的 Sprite 组件支持自定义材质的使用,其使用界面如下图: 其使用方法与其他材质并无不同,但由于 Sprite 面板有基于 UI 内置材质的功能,所以有一些需要注意的点: 当设置自定义材质数量为 0 或为空时,会使用默认材质进行渲染,面板功能及使用方法可参考 Sprite UI 并不支持多材质,自定义材质的数量最多为一个 当使用了 ui 自定义材质之后,面板上的

  • 问题内容: 我在从CardMedia图片上的道具获取图片时遇到了一些麻烦: 它只是不渲染所有图像。所有其他props值将按需渲染。同样作为Material UI,我在JS css上指定了CardMedia的高度。 有谁知道为什么会这样吗? 问题答案: 好的,有同样的问题。终于成功了。 您还可以检查:https : //codesandbox.io/s/9zqr09zqjo-无选项加载图像。图片位置

  • 我有一个如下: 然而,所有的标签都向右对齐,我想把它们对齐到中心。使用对象,我可以只传递以属性,但是,它与不一样。 我怎样才能像处理

  • 我想从材质UI更改(减少)工具栏的默认高度 我已经提到了如何更改材质UI工具栏高度?但我仍然面临着这个问题 问题是,当我超过50岁时,我能看到变化。但当我想降低高度时,我无法做到。 我如何才能实现这一点? 我的代码:

  • 问题内容: 我正在与Material-UI一起玩。是否有创建网格布局的任何选项(例如在Bootstrap中)? 如果不是,添加此功能的方式是什么? 有一个GridList组件,但我想它有一些不同的用途。 问题答案: 材质UI已通过Grid组件实现了自己的Flexbox布局。 看来他们最初想将自己保留为纯粹的“组件”库。但是一位核心开发者认为不要拥有自己太重要了。现在,它已合并到核心代码中,并随v1

  • 无论我在Angular 8项目中添加了什么角度材质元素(材质选项卡、材质按钮切换、材质选择、材质输入…),它们都不会更新。例如,在“材质”选项卡中,会绘制涟漪效果,但不会更改选项卡。mat按钮切换显示了类似的行为。mat select中的选项不显示,mat input中的浮动标签不浮动。我的代码基本上来自角度材质页面: BrowserModule和BrowserAnimationsModule在A