当前位置: 首页 > 知识库问答 >
问题:

如何使用MaterialUI用Redux-form获取Textfield输入值

毋弘光
2023-03-14

目标:从material UI组件获取输入值,并通过handleSubmit函数将其传递给动作创建者。

                 <Field name='email'
                  component={email =>
                   <TextField
                    fullWidth
                     autoComplete='off'
                      className={classes.textField}
                      id='email-text-field'
                      label='Email'
                      value={email} />
                    } />

                 <Field name='password'
                  component={password =>
                    <TextField
                      type='password'
                      fullWidth
                      autoComplete='off'
                      className={classes.textField}
                      id='password-text-field'
                      label='Password'
                      value={password} />
                    } />

这是它连接到Redux的方式:

@reduxForm({form:'loginForm',字段:['email','密码']})

我在我的chrome开发工具控制台中得到的警告是:失败的道具类型:提供给TextField的道具无效。警告:失败的prop类型:提供给Input的propvalue无效。'

此外,我登录表单中的电子邮件字段显示[对象,对象}我猜这是由于道具从

你知道我哪里出错了吗?

共有1个答案

宋宏毅
2023-03-14

当您想为Redux-Form使用自定义字段时,Redux-form可以让您访问onChange等道具,还可以访问其他元数据(如表单是否被触摸过)。这些不同种类的道具根据类型分组。

您感兴趣的是,与普通输入元素相关联的所有属性(如onChangevaluetype)都分组在道具中。输入。因此,您调用的参数password实际上是发送到组件的整个props对象。它看起来像这样的{input:{value:'someValue',onChange:somFunction..etc.etc},meta:{toucted:false,etc.etc.}

这意味着,如果您想像现在这样使用TextField,您需要执行以下操作:

<Field name='email'
    component={({input}) =>
      <TextField
         value={input.value}
         onChange={input.onChange}
         fullWidth
         autoComplete='off'
         className={classes.textField}
         id='email-text-field'
         label='Email'
        />
     } />

这可能会变得非常混乱,特别是如果您想使用meta道具,因此通常值得将自定义组件逻辑分解为自己的函数,就像文档中的示例所做的那样:https://redux-form.com/7.0.4/examples/material-ui/

您还可能有兴趣知道,对于coport-ui组件,实际上已经有一个库为您完成了大部分手动工作:redux-form-coport-ui

 类似资料:
  • 问题内容: 我有一个输入字段,如下所示: 我想获取输入字段的值并将其分配给会话。如何使用PHP或jQuery做到这一点? 问题答案: 使用PHP 或超全局变量通过HTML标签的名称来检索输入标签的值。 例如,更改表单中的方法,然后通过输入名称回显该值: 使用方法: 要显示值: 使用方法: 要显示值:

  • 我有一个输入字段如下: 我想获取输入字段值,并将其分配给会话。如何使用PHP或jQuery实现这一点?

  • 我有数据 我正试图选择它与J汤。 但这不起作用。 我在字符串auth_token=处收到空指针异常。 java.lang.crime.ic.Main.main(Main.java: 2) 我做错了什么?

  • 问题内容: 我有以下React组件: 控制台给了我-任何想法这段代码有什么问题吗? 问题答案: 您应该在类MyComponent下使用构造函数扩展React.Component 然后您将获得标题的结果

  • 我正在尝试根据用户输入字段获取api数据。如何获取这些数据的值? 我的apiendpoint如下“http://localhost:8000/api/p_list?search=" . 每当用户输入值时,endpoint如下“http://localhost:8000/api/p_list?search=01这里输入的字段值为“01”。我想得到结果的值。 我可能是新来的反应。我尝试了下面这样的东西

  • 问题内容: 我正在尝试使用React refs在安装时聚焦Redux-Form字段。 当我尝试时,会抛出一个错误: 当我console.log this.refs时,它通常是一个空对象,有时将’title’标识为ref,但它不是可靠的。 我是否正确使用了引用?我的代码在下面供参考。 … 问题答案: 请尝试使用回调函数设置ref: 然后使用它来获取基础的DOM节点: DOM输入元素是否包装在另一个元