reactjs - > FormControl里面有多个InputBase组件
问题描述
我有一个问题:
Material-UI:FormControl 中有多个 InputBase 组件。这是不支持的。它可能会导致无限渲染循环。只使用一个 InputBase。
我明白这是什么意思,但我真的需要我的表单中的两个输入:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
import {Button, FilledInput} from "@material-ui/core";
export interface InputValues {
input1?: string;
input2?: string;
}
export interface InputProps {
value: InputValues;
}
export const Input = ({value}: InputProps) => {
return <div>
<DependenciesExpressionRow value={value.input1 || ""}/>
<DependenciesExpressionRow value={value.input2 || ""}/>
<Button>
</Button>
</div>;
};
export interface RowProps {
value: string;
}
const DependenciesExpressionRow = ({value}: RowProps) => {
return <div>
<FilledInput key={value} value={value} multiline rows={5} fullWidth/>
<Button>
</Button>
</div>;
};
我把它叫进来:
<FormControl>
<Input value={{input1: expression1Field.value, input2: expression2Field.value}}/>
</FormControl>
解决方案
我知道这似乎不是一个好的答案。但是,github 上的文档和提出的问题没有明确的指导!!我的解决方法只是用一个<FormControl />
组件包装输入元素。它已经停止了警告,没有任何副作用。请记住,我的表单组件都是通过Reactjs
状态控制的,因此,我认为这个解决方案没有问题。
推荐阅读
- javascript - 平移 z 维度时,纹理从平面网格中消失
- linux - IntelliJ 在 Linux 上显示“Haxe SDK 没有有效的根”
- asp.net-core-2.1 - DotNet Core 身份 - 它不记得用户
- arrays - 在 groovy 中创建地图的汇总列表
- r - 在 R 中使用具有不同宽度的列的数据框时出现问题
- javascript - 如何在函数中保存全局变量值?
- html - 无法在圆形按钮中垂直居中文本
- r - R:为什么 group_by 仍然需要“做”,即使使用 quosures
- big-o - 这个例子是 O(n) 还是 O(nlogn)?
- pandas - 创建 100% 堆栈栏