首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redux-form如何更新Material-UI v4 textField值?

Redux-form是一个用于管理表单状态的库,而Material-UI v4是一个React组件库,提供了一系列UI组件,包括textField文本输入框。在Redux-form中更新Material-UI v4 textField的值,可以通过以下步骤实现:

  1. 首先,确保已经安装了redux-form和material-ui库,并在项目中引入它们的相关组件和依赖。
  2. 在Redux-form中,表单的值是通过Redux store中的state来管理的。因此,要更新textField的值,需要通过Redux-form提供的action和reducer来更新state。
  3. 在Redux-form中,可以使用Field组件来包装textField,并将其与Redux-form的state关联起来。例如:
代码语言:txt
复制
import { Field } from 'redux-form';
import { TextField } from '@material-ui/core';

// ...

<Field name="myTextField" component={TextField} label="My TextField" />

在上面的代码中,我们使用Field组件将textField包装起来,并将其与Redux-form的state中的名为"myTextField"的字段关联起来。

  1. 要更新textField的值,可以通过Redux-form提供的change action来触发更新。在组件中,可以使用reduxForm()高阶函数将表单组件连接到Redux-form,并将change action作为props传递给组件。例如:
代码语言:txt
复制
import { reduxForm } from 'redux-form';

// ...

const MyForm = ({ handleSubmit, change }) => {
  const handleChange = (event) => {
    change('myTextField', event.target.value);
  };

  return (
    <form onSubmit={handleSubmit}>
      <TextField label="My TextField" onChange={handleChange} />
      {/* 其他表单字段 */}
      <button type="submit">提交</button>
    </form>
  );
};

export default reduxForm({
  form: 'myForm',
})(MyForm);

在上面的代码中,我们定义了一个名为MyForm的表单组件,并使用reduxForm()将其连接到Redux-form。在组件中,我们定义了一个handleChange函数,它会在textField的值发生变化时触发change action来更新Redux-form的state中的"myTextField"字段的值。

  1. 最后,可以在Redux-form的state中获取和使用更新后的textField的值。可以通过reduxForm()高阶函数将表单组件连接到Redux-form,并将表单的值作为props传递给组件。例如:
代码语言:txt
复制
import { reduxForm, formValueSelector } from 'redux-form';

// ...

const MyForm = ({ handleSubmit, myTextFieldValue }) => {
  // 使用myTextFieldValue
  // ...

  return (
    // ...
  );
};

const selector = formValueSelector('myForm');

export default reduxForm({
  form: 'myForm',
  initialValues: {
    myTextField: '初始值',
  },
  enableReinitialize: true,
})(connect((state) => ({
  myTextFieldValue: selector(state, 'myTextField'),
}))(MyForm));

在上面的代码中,我们使用formValueSelector()函数来获取Redux-form的state中的"myTextField"字段的值,并将其作为props传递给组件。

这样,当textField的值发生变化时,Redux-form会更新state中的"myTextField"字段的值,并将其传递给组件,从而实现了更新Material-UI v4 textField的值。

关于Redux-form和Material-UI v4的更多详细信息和用法,请参考以下链接:

  • Redux-form官方文档:https://redux-form.com/
  • Material-UI v4官方文档:https://material-ui.com/
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

依赖什么啊?依赖注入……,什么注入啊?

为了更好的说明这个问题,以及如何在实践中修改我们的设计,使得代码更可能具有比较优秀的性能,我们可以一起讨论几个典型的例子。...不过很快我们会发现这样的方式会带来一些问题: 由于Avatar依赖于Tooltip,打包后文件的尺寸会增加 如果用户需要以新的方式定制Tooltip,Avatar的接口也需要相应的更新 由于这个依赖,当...如果需要,上面的代码还可以修改为: import Avatar from "@atlaskit/avatar"; import Tooltip from "@material-ui/core/Tooltip...这种更加可组合的方式有这样一些好处: 对于单个库来说,体积更小 对于消费者来说,更容易按需定制(比如可以选择默认不引入Tooltip) 不再绑定到某一个Tooltip的具体实现上,可以替换成其他库(比如上述material-ui.../core/Popover"; import Typography from "@material-ui/core/Typography"; const MyEdit = () => { return

1.9K20

Redux框架reducer对状态的处理

创建副本也是为了保证向下传入的this.props与nextProps能得到正确的,以便我们能够利用前后props的改变情况决定如何render组件。 怎样创建副本state才是合理的?...当对x和y的c1进行修改时,确实各不相同。这是因为c1在对象中以的形式存在,体现为两份不同的拷贝。...外部插件直接更新state是否合理? 我目前接触较多的外部插件为redux-form。此处暂以redux-form更新state的方式进行一些探讨。...redux-form 当组件采用redux-form进行监听后,内部form表单里的对象都将被放入redux的state中进行管理,并由redux-form自身发起action进行更新删除等操作。...问题在于,每次表单的更新redux-form都会发起一次action,这意味着我们在一个input框里输入一句简单的"hello world",默认情况下将会有11个state副本产生。

2.1K50

React Table 表格组件使用教程 排序、分页、搜索过滤筛选功能实战开发

因此使用 react-table 进行开发具有一定的难度,而本文将由浅入深地讲解如何在 React 项目中使用 react-table 实现各种常见的需求,例如:排序、分页、搜索过滤筛选等;同时还会结合一个完整的案例给大家讲解如何搭配使用...Material-UI 以及模拟从后端获取数据进行分页等功能。...跟随本文你将学到如何使用 react-table 在 React 中搭建表格组件如何使用 react-table 表格组件进行数据的分页、排序、搜索过滤筛选react-table 实战案例:手把手教你使用...React 项目:npx create-react-app react-table-democd react-table-demo然后我们安装一下 react-table:接下来我们通过一个简单的示例,讲解如何在...react-table 搜索过滤筛选展示效果如下:图片扩展阅读:《5款 React 实时消息提示通知(Message/Notification)组件推荐与测评》React Table 组件与卡拉云前面我们展示了如何

16.2K00

一日一技:在 MongoDB 中,如何批量更新不同数据为不同

摄影:产品经理 家里做点简单的 我们知道,当使用 Pymongo 更新MongoDB 字段的时候,我们有两种常见的方法: handler.update_one({'name': 'value'}, {...;update_many是更新所有满足查询条件的数据。...大家在使用update_many的时候,不知道有没有想过一个问题:update_many会对所有满足条件的文档更新相同的字段。...例如,对于上面第二行代码,所有name字段为value的数据,在更新以后,新的数据的aa字段的全都是bb。那么,有没有办法一次性把不同的字段更新成不同的数据呢?...所以现在需要批量更新数据。显然,对男生而言,有一些原本为True的需要变成 False;对女生而言,有一些原本为 False 的,要变成 True。

4.4K30

我们应该如何优雅的处理 React 中受控与非受控

这也就意味着,如果组件外部的状态并不改变(这里指组件的 props 中的 value)时,即使用户在页面上展示的 input 如何输入 input 框中渲染的也是不会发生任何改变的。...只需要传入 defaultValue 的就可以使用非受控状态的 input 。 受控处理 上述我们用非常简单的代码实现了非受控的 Input 输入框,此时我们再来看看如何兼顾受控状态的。...但是对于 TextField 内部来说,我们会将外部传入的全部当作受控来处理。...当 TextField 组件为受控状态时,内部表单的 value 并不会跟随组件内部的 onChange 而改变表单的。...如果是函数那么传入 prevValue ,非函数就获得对应的 nextValue 以及进行相同不更新的操作。

6.3K10

2023 React 生态系统,以及我的一些吐槽……

它们通常还需要对该数据进行更新、将更新发送到服务器,并使客户端上的缓存数据与服务器上的数据保持同步。...createSlice 和 createAsyncThunk API 之上的 由于 Redux Toolkit 是与 UI 无关的,RTK Query 的功能可以与任何 UI 层一起使用 API 端点是预先定义的,包括如何从参数生成查询参数和将响应转换为缓存的方式...Formik 是一个小型库,可以帮助您解决以下三个最令人讨厌的问题: 将放入和取出表单状态 验证和错误消息 处理表单提交 通过将所有这些放在一个地方,Formik 可以让事情井然有序,使得测试、重构和理解您的表单变得轻而易举...为什么不使用 Redux-Form? 到现在为止,您可能会想,“为什么你不只是使用 Redux-Form?”问得好。...Redux-Form 在每次按键时都会多次调用整个顶层 Redux reducer。

57630

用户登录前后端分离开发实战案例:React,npm,webpack,ES6, Kotlin, Spring Boot, Gradle, Freemarker, Material UIKotlin 开发

使用npm搭建React的webpack环境 本节我们来介绍如何通过 npm一步一步创建 React前端工程。我们通过Webpack打包构建React工程。...安装 下面我们来一步一步安装Material-UI——这个世界上最受欢迎的React UI框架。Material-UI 可作为 npm 包使用。...安装核心依赖 npm install @material-ui/core 等待依赖安装完毕,我们可以看到,此时我们的package.json文件内容新增了 "@material-ui/core": "^...console.log(event.currentTarget); if (event.currentTarget.value.length < 3) { this.setState({ // 更新...image 请求响应: {"data":"username=jack,password=123456","success":true,"msg":""} 有了上面的前后端完整的开发流程作为基础,我们就可以连接数据库

8K30

在SwiftUI中使用UIKit视图

•updateUIViewSwiftUI会在应用程序的状态(State)发生变化时更新受这些变化影响的界面部分。...在makeUIView中,我们使用textfield.text = text获取了Demo视图中name的,但makeUIView只会执行一次。...text } } makeUIView方法的参数中有一个context: Context,通过这个上下文,我们可以访问到Coordinator(自定义协调器)、transaction(如何处理状态更新...如何实现类似原生TextFiled的链式调用呢?...不过有以下几点需要注意: •如何改变View内的的(View是结构)•如何处理返回的类型(保证调用链继续有效)•如何利用SwiftUI框架现有的数据并与之交互逻辑 为了更全面的演示,下面的例子,采用了不同的处理方式

8.1K20

【译】JetPack Compose for Desktop 初体验

关于如何使用 Jetpack Compose for desktop,我计划在未来写一些文章加以阐述,本文是这个系列的第一篇文章。...在这种情况下,我们只需要把传给内容参数,其余的参数保留默认即可。在接下来的代码中,我们声明了一个具有 remember 功能的 text 变量,其初始为 Hello, World!。...在诸如按钮、文本字段等 UI 组件中,我们使用 remember 作为文本的状态,这样当我们在未来更新这个 text 变量时,与该变量相关的视图也会更新显示文本。...•“Jetpack Compose — A New and Simple Way to Create Material-UI in Android”[8]•“JetPack Compose With Server...://github.com/Gurupreet/ComposeSpotifyDesktop [8] “Jetpack Compose — A New and Simple Way to Create Material-UI

5K30

SwiftU:将状态绑定到UI控件

SwiftUI的@State属性包装器允许我们自由修改视图结构体,这意味着当程序更改时,我们可以更新视图属性以匹配。 但是,使用UI控件时,事情会更复杂一些。...但是,该代码仍然无法工作,因为Swift需要能够更新name属性以匹配用户在文本字段中键入的任何内容,因此您可以使用`@State``,如下所示: @State private var name = "...问题是Swift区分了“在此处显示此属性的”和“在此处显示此属性的,但将任何更改写回该属性” 在Swift中,我们用一个特殊的符号来标记这些双向绑定,这样它们就很显眼:我们在它们前面写一个美元符号$...这告诉Swift,它应该读取属性的,但也应该在发生任何更改时将其写回。...在继续之前,让我们修改文本视图,使其在文本字段的正下方显示用户名: Text("Your name is \(name)") 注意它是如何使用name而不是$name?

2.9K10
领券