标签: material-ui

如何拖放 Material-UI 卡片

是否可以拖放和更改 Material UI 卡的排序?如果是这样,如何? https://material-ui.com/components/cards/

reactjs material-ui

10
推荐指数
1
解决办法
2万
查看次数

如何禁用 material-ui Autocomplete 中的过滤选项?

我正在使用 material-ui Autocomplete。当用户更改输入时,它会异步从后端获取建议。这是代码的一部分:

const [options, setOptions] = useState([]);

<Autocomplete
  ...
  freeSolo={true}
  options={options}
  renderInput={params => (
    <TextField
      ...
      {...params}
      onChange={async (e) => {
          // get suggestions from backend
          const suggestions = await getSuggestions(e.target.value);

          // update autocomplete options
          setOptions(suggestions);

          ...
      }}
      InputProps={{
        ...params.InputProps,
        endAdornment: (
          <React.Fragment>
            {loading ? <CircularProgress color="inherit" size={20} /> : null}
            {params.InputProps.endAdornment}
          </React.Fragment>
        ),
      }}
    />
  )}
/>
Run Code Online (Sandbox Code Playgroud)

问题是 material-ui 自动完成没有显示使用“setOptions”设置的所有选项。它过滤它们。

例如:假设用户输入“appl”,getSuggestions 返回[“apple”, “orange”, “potato”]。但它只显示“apple”,因为它过滤掉了“orange”和“potato”。

如何禁用过滤?

autocomplete reactjs material-ui react-hooks

10
推荐指数
1
解决办法
4759
查看次数

Material UI 有 Image 组件吗?

我之前用过其他的react组件,他们大多有自己的Image组件,但是我在Material-UI中找不到?

还是通过 CardMediaAPI 完成?还是简单地使用标签?谢谢!

javascript reactjs material-ui

10
推荐指数
5
解决办法
2万
查看次数

material-ui makeStyles:如何按标签名称设置样式?

我想为<p>当前组件中的所有人添加规则。我在任何地方都找不到有关如何按标签名称添加 CSS 规则的信息(material-ui 文档、Stack Overflow 等)。

不支持吗?

我正在尝试做这样的事情:

const useStyles = makeStyles((theme: Theme) =>
    createStyles({
        'p': {
            margin: 0,
        },
        someClass: {
            fontSize: 14,
        },
    })
);
Run Code Online (Sandbox Code Playgroud)

编辑:

使用 Ryan 的解决方案有效,但会产生一个新问题:

import React from 'react';
import { makeStyles, Theme, createStyles } from '@material-ui/core';

const useStyles = makeStyles((theme: Theme) =>
    createStyles({
        root: {
            '& p': {
                margin: 0,
            },
        },
        // I want this rule to override the rule above. It's not possible in the current configuration, because `.root …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui jss

10
推荐指数
1
解决办法
5649
查看次数

扩展 MUI 组件会导致有关“css”属性丢失的 TS 错误

我们使用自定义组件 (MySnackbarContent) 扩展了 SnackbarContent 组件:

export interface MySnackbarContentProps extends Omit<SnackbarContentProps, 'variant'> {
  variant?: MyCustomVariant;
  type?: MyCustomType;
  banner?: boolean;
  // ...
}

const MySnackbarContent = forwardRef<HTMLElement, MySnackbarContentProps>(props: MySnackbarContentProps, ref) => {
  const { variant = 'normal', type = 'default', banner = false, ...other } = props;
  const className = ...;

  return <SnackbarContent ref={ref} className={className} {...other} />
}
Run Code Online (Sandbox Code Playgroud)

这是我在使用自定义 SnackbarContent 组件时遇到的错误:

类型 '{ type: "error" | 中缺少属性 'css' “默认” | “成功” | 不明确的; 消息:字符串;动作:元素;}' 但在类型 'Pick<MySnackbarContentProps, "hidden" | 中是必需的 "风格" | "onSelect" …

typescript reactjs material-ui

10
推荐指数
1
解决办法
500
查看次数

您可以在 Material UI 中添加其他颜色吗?

我已经有一个我正在尝试在 Material UI 中实现的样式指南。我可以看到按钮的颜色道具采用以下选项:

| 'default'
| 'inherit'
| 'primary'
| 'secondary'
Run Code Online (Sandbox Code Playgroud)

但是我需要一个额外的:

| 'default'
| 'inherit'
| 'primary'
| 'secondary'
| 'tertiary'
Run Code Online (Sandbox Code Playgroud)

您能否在 Material UI 中创建一种与通用主题系统配合使用的新颜色?或者这不是真的应该如何使用它?

reactjs material-ui

10
推荐指数
1
解决办法
2710
查看次数

在 React Router v6 中,如何在离开页面/路由之前检查表单是否脏

以下是我正在使用的软件包版本。

React version - 16.13.1
react-router-dom version - 6.0.0-beta.0
react-redux version 7.2.0
Material UI version 4.11.0
Run Code Online (Sandbox Code Playgroud)

isDirty当用户试图离开当前页面时,如何/什么是检查表单(已更改)的最佳方法?如果表单isDirty.

我将从内部获取数据useEffect()并使用 redux reducer 来呈现 UI。

我应该声明一个变量来保留原始获取的数据以进行脏检查吗?

这就是我正在做的事情,但它无法正常工作。

组件.js

 useEffect(() => {
    props.fetchUserInfo();
 })
Run Code Online (Sandbox Code Playgroud)

动作.js

export function fetchUserInfo() {
 return (dispatch) => {
     dispatch({type: USER_INITIALSTATE, {Name: 'abc', Age: 20}} 
     )
 }
}
Run Code Online (Sandbox Code Playgroud)

userReducer.js

const initialState = {
  processing: false,
  success: false,
  fail: false,
  Profile: {}
}
let oriState;
let State;
const UserReducer = (state = initialState, action) => { …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router material-ui react-redux

10
推荐指数
2
解决办法
5022
查看次数

如何在材质ui表中的每一行添加一个按钮

我无法在 Material-UI 数据表的每一行中添加一个按钮我有一个 Material-UI 数据表,我像这样渲染

<DataGrid rows={rows} columns={columns} pageSize={5} checkboxSelection />
Run Code Online (Sandbox Code Playgroud)

我已将按钮应位于的列变量“操作”列添加到列中。行只是我从道具中获得的数据对象。如何在每一行中添加一个按钮(用于编辑行)?我尝试映射数据数组,但不可能将 JSX 按钮添加到每个数据对象中

reactjs material-ui

10
推荐指数
4
解决办法
2万
查看次数

Material UI:页面初始加载时闪烁(Razzle)

我在服务器端渲染应用程序中集成了材质 UI,并遵循了此处给出的代码。Material UI css 已添加到服务器端本身的 html 中。

但是,在初始加载时,不会应用材质 ui 样式,这会导致它闪烁。

我尝试<cssbaseline>与下面的代码一起使用,但没有看到任何区别。

这是我的代码:server.js

import App from '../common/containers/App';
import { Provider } from 'react-redux';
import React from 'react';
import configureStore from '../common/store/configureStore';
import express from 'express';
import qs from 'qs';
import { renderToString } from 'react-dom/server';
import serialize from 'serialize-javascript';
import { StaticRouter, matchPath } from 'react-router-dom';
import {theme} from '../theme';
import { ServerStyleSheets, ThemeProvider } from '@material-ui/styles';
import routes from './routes'
import "../common/assets/SCSS/app.scss";

const assets = require(process.env.RAZZLE_ASSETS_MANIFEST); …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui server-side-rendering razzle

10
推荐指数
1
解决办法
692
查看次数

React hook 表单 - 对话框内的字段数组(材质 UI)

所以我有一个表单,其中包含我通过来自 react-hook-form 的 Field Array 添加的自定义字段。一切正常,但我为属性项添加了拖放功能(以重新排序),现在直接显示所有这些许多字段会很麻烦,所以我将它们移动到对话框中。

以下是了解什么更容易拖放的图片......(正确的)

问题是字段数组值在模式关闭后“重置”(在我在编辑模式中输入这些表单值之后),我猜这与重新渲染有关,但我不确定。

我试图在没有 d&d 和其他无用的东西的情况下展示最小的代码示例......
但这里是带有完整代码的代码和盒子游乐场

创建CategoryForm.js

const defaultValues = {
  name: "",
  slug: "",
  description: "",
  properties: [] // field array
}

function CreateCategoryForm() {
  const methods = useForm({ defaultValues });
  const { handleSubmit, control, errors } = methods;
  const { fields, append, remove, swap } = useFieldArray({ name: "properties", control });

  const onSubmit = async (data) => {
    console.log("data: ", data);
  };

  return (
    <Container>
        <FormProvider {...methods}>
          <form onSubmit={handleSubmit(onSubmit)} noValidate>
            <FormTextField …
Run Code Online (Sandbox Code Playgroud)

javascript forms reactjs material-ui react-hook-form

10
推荐指数
1
解决办法
910
查看次数