我怎样才能提高整体动画速度Material UI,例如里面有一个drawer组件material UI,它可以打开或关闭,我怎样才能提高动画速度?
更好的是我怎样才能提高所有动画速度material UI?
我正在使用 Material UITextField和 Material UI Tab。我有两个选项卡,每个选项卡内都有一个文本字段。单击 后TextField,标签的边框应该打开,但如果当前Tab不是Tab1!! ,则不会发生这种情况。
我设法在此 CodeSandBox中重现此问题,代码也包含在下面。
import React from "react";
import PropTypes from "prop-types";
import { makeStyles } from "@material-ui/core/styles";
import AppBar from "@material-ui/core/AppBar";
import Tabs from "@material-ui/core/Tabs";
import Tab from "@material-ui/core/Tab";
import Typography from "@material-ui/core/Typography";
import Box from "@material-ui/core/Box";
import TextField from "@material-ui/core/TextField";
function TabPanel(props) {
const { children, value, index, ...other } = props;
return (
<Typography
component="div"
role="tabpanel"
hidden={value !== index}
id={`scrollable-force-tabpanel-${index}`} …Run Code Online (Sandbox Code Playgroud) 我已经构建了自己的FormBuilder组件(5k现在几乎是一行),因此它可以满足我的所有需求,我遇到的一个问题是FormData在用户需要的任何时间加载一组新组件,因为我FormBuilder可以接受一组嵌套组件,比较这些更改有点困难,并且处理组件中的所有内容确实挂载了,一个简单的方法是在组件loadFormData内部构建一个方法FormBuilder并从组件外部调用此方法
我知道这可以很容易地使用ref attribute,但反应强烈建议避免这种情况,我得到了灰心!我不确定我是否应该这样做!
所以我想出了一个新的替代方案,它有点做同样的事情:
class A {
onGetFormBuilderInternalFunction = (functions) => {
this.formBuilderFunctions = functions
}
onLoadButtonClick = () => {
this.formBuilderFunctions.loadFormData(someNewData)
}
render () {
<FormBuilder onGetInternalFunction={this.onGetFormBuilderInternalFunction}
}
}
class FormBuilder {
componentDidMount() {
if (this.props.onGetInternalFunction) {
this.props.onGetInternalFunction({
loadFormData: this.loadFormData,
})
}
}
}
Run Code Online (Sandbox Code Playgroud)
那么你怎么看?,这是更好的方法吗?还是这仍然很糟糕?,我在想使用这种方法至少只能访问我需要的功能,而不能访问其他所有功能。
我还应该提到,loadFormData这只是一个例子,至少有几个special function我真的认为最好从外部调用,所以即使我以某种方式从 props 传递新数据并处理它componentDidUpdate,对于其余的这些功能,我仍然需要访问FormBuilder
我在项目中到处使用 map ,即使我不想返回任何东西,我只是使用{}而不是()并且不返回任何东西,只是像 a 一样使用它for loop,这样可以吗?如果是,那么不使用任何键怎么样?因为我有时并不真正使用地图内的元素,我什至不需要(或知道如何)使用键!
这是我从代码中复制的示例:
rawElementList.map(element => {
if (element.validation !== undefined) {
if (JavascriptUtils.hasOwnProperty(element.validation, 'isRequired')) {
const isRequired = element.validation.isRequired;
if (isRequired !== undefined) {
delete element.validation.isRequired;
required.push(String(element.id))
}
}
validationJsonList.properties[element.id] = element.validation;
}
})
Run Code Online (Sandbox Code Playgroud)