首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mobx-react form textfield默认值在提交时不被识别

mobx-react form textfield默认值在提交时不被识别
EN

Stack Overflow用户
提问于 2021-09-24 03:39:02
回答 1查看 244关注 0票数 4

代码如下

代码语言:javascript
复制
 <TextField {...form.$("phone.countryCode").bind()} value={222} />

表单设置如下

代码语言:javascript
复制
{
        name: "phone",
        fields: [
          {
            name: "countryCode",
            label: "Country Code:",
            bindings: "TextField",
            placeholder: "+",
            rules: "required",
          }
       ]
}

该值在textfield中正确显示。但当我提交表单时,它会显示“必需”错误。

我假设当我们像这样设置值时不会触发field.input.onChange,因此mobx字段不会用该值进行更新。

知道怎么解决这个问题吗?

编辑:

这个价值是一个基于国家选择的动态价值。因此,您不能在初始化期间设置值。这就是为什么我必须采取这种方法。

EN

回答 1

Stack Overflow用户

发布于 2021-09-24 10:42:23

不需要在value上覆盖TextField,mobx-react(我假设您正在使用它)不可能知道您正在使用它。初始化表单时只需传递默认值,如下所示:

代码语言:javascript
复制
const fields = [
  {
    name: "countryCode",
    label: "Country Code:",
    bindings: "TextField",
    placeholder: "+",
    rules: "required",
    value: 'YOUR_DEFAULT_VALUE_HERE'
  }
]

new MobxReactForm({ fields });

如果该值依赖于其他值,则可以使用useEffect,例如:

代码语言:javascript
复制
useEffect(() => {
  // set countryCode value manually with needed value
  FormModel.$("countryCode").set(country.code);
// Add needed deps
}, [country])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69309253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档