reactjs - React Native 与 JSON 模式形式
问题描述
我正在尝试找到一种方法来实现JSON schema
form into React Native
,但我找不到一个好的解决方案。
我的想法是返回一个JSF
(服务器端)并使用它form
在应用程序中创建一个。例如,我可以随时更改表单,而无需更新应用程序。
我发现了一些有趣的项目:
- 是的架构;但如果我是正确的,这将专门用于表单的验证方面,而不是创建本身。
- 反应-jsonschema-form;这似乎
React.js
只是并且不支持react-native(还)。 - 带有JSF 扩展的tcomb-form-native可能很有趣,但维护得不是很积极。
有人有这方面的经验吗,如果有的话;你是如何实施的?
更新
这个想法是使用redux-form
和抽象 JSF 中的一些值。
const Form = ({ ...props }) => {
const fields = fieldTypesFromJSF(schema);
return (
<Field name='name' {...fieldTypesFromJSF.name} />
);
}
解决方案
在服务器端,您可以像这样定义 json
formConfig:[{name:'username',type:'string'},{name:'family',type:'string'}]
,而在 RN 端 formik 是最佳选择,因为它具有 initialValues 道具可以基于 formConfig 进行初始化
<Formik
initialValues={{name,family}}
onSubmit={values => {
this.props.handleSubmit(values);
}}
>
{props => (
<View>
{this.props.formConfig.map(item => {
const { name } = item;
if (item.type === 'number') {
return (
<>
<View style={styles.column}>
<Input
value={props.values[name]}
onChangeText={props.handleChange(name)}
/>
<Text>{props.values[name]}</Text>
</View>
</>
);
}
})}
<Button onPress={props.handleSubmit} title="submit" />
</View>
)}
</Formik>
推荐阅读
- apache-spark - Spark 何时为 map() 分配分区给 worker?
- python-3.x - Discord Python:如何在发送 GIF 时提及用户
- javascript - 如何在 vue 上的 ajax 响应成功后显示模态?
- tensorflow - 使用重叠数据在 TensorFlow 中设置训练?
- django - 如何在 Django Admin 中表示这两个层次的深层关系?
- admob - 在特定容器 Flutter 中显示 admob 广告
- javascript - 将 Javascript 对象数组传递给 MVC 控制器
- stanford-nlp - 下载的 Stanford POS Tagger 使用在线 Stanford Parser 得到不同的结果
- php - preg_match_all 的正则表达式仅在字符串中获取 10 个字符
- r - R中用于数据预测的SVM