reactjs - Ant Design Form 中的输入元素非常慢
问题描述
我正在为 React 使用 React 和 Ant Design,并且我正在尝试构建一个包含 10 到 15 个输入元素的表单。输入非常慢。我在文档中使用他们的示例作为参考,我没有做任何不同的事情。什么可能导致我的问题?这是一个供参考的代码:
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 8 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
}
};
<Form inline="true" onSubmit={this.handleSubmit}>
<Row gutter={8}>
<Col span={15}>
<FormItem {...formItemLayout} label="Name">
{getFieldDecorator(
`category[categories_langs][na5me]`)(
<Input/>
)}
</FormItem>
</Col>
</Row>
// The above Row repeated ten-fifteen times
</Form>
<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>
解决方案
这应该是 antd 和 rc-form 的问题。见:https ://github.com/ant-design/ant-design/issues/14054
到目前为止,一种解决方法是使用 debounce 方法来改善输入体验。您可以创建一个高级组件来包装 Input 组件。lib https://www.npmjs.com/package/react-component-debounce可以帮助您做到这一点。类似代码如下:
import reactComponentDebounce from 'react-component-debounce';
const DebounceInput = reactComponentDebounce({
valuePropName: 'value',
triggerMs: 250,
})(Input);
推荐阅读
- python - DRF 更新一行
- asp.net-mvc - ASP .NET MVC 模板中缺少 bower.json 和 .bowerrc
- javascript - 基本的 reactjs,如何获取 REST 数据并渲染它
- php - php 代码覆盖率和 selenium 设置
- java - 在最终类中扩展 Comparable 泛型
- javascript - 如何根据数据集大小调整 Chart.js 高度。离子 3
- python - 打开 .csv 文件编辑一个字段,写回 .csv 文件
- android - 在 Async 类中返回字符串 onPostExecute()
- git - 从 git 克隆 repo 时的问题:错误的文件描述符和索引包失败
- python - 即使我没有登录也运行 python 脚本