如何为tcomb-form-native的inputText设置默认值?
解决tcomb-form设置字段默认值的问题
嘿,我刚看到你的问题啦!作为React Native新手用tcomb-form确实容易踩这个小坑——你在fields配置里加value是没用的哦,tcomb-form的默认值得通过组件的value属性来传递~
下面给你修正后的完整示例:
- 定义结构体(这部分你已经做对了)
this.Position = t.struct({ PosName: FormFields.String, });
- 初始化默认值(建议放在组件状态里)
在组件的构造函数里初始化包含默认值的状态:
constructor(props) { super(props); this.state = { formValue: { PosName: "some text here " // 这里就是你要的默认文本 } }; }
- 渲染Form组件时传递默认值
关键是给<Form>组件添加value属性,绑定你刚才初始化的状态值:
render() { const Form = t.form.Form; return ( <Form type={this.Position} value={this.state.formValue} // 这一步才是设置默认值的正确方式! options={{ fields: { PosName: { placeholder: "Name der Position", error: "Dieses Feld ist erforderlich", label: "Name der Position", template: Template } // 其他字段配置... } }} /> ); }
小提示:tcomb-form的fields配置项里的value并不是用来设置默认值的,它是组件内部用来控制输入状态的属性。真正的默认值必须通过Form组件顶层的value属性传递,这样组件首次渲染时就会把这个值填充到对应的字段中啦。
内容的提问来源于stack exchange,提问作者Hamdi Gatri
相关产品推荐
相关产品推荐

