React Native表单提交:选传参还是父组件状态获取值?
回答:当然可以在React Native中使用第一种传参方式!
你完全不需要纠结——第一种直接在提交时传递表单值的方式在React Native里是完全可行的,而且非常适合你这种「无需实时操作状态」的场景。
两种方式的适用场景对比
方式一(提交时传参):
这种方式更轻量化,不需要实时同步父组件状态,只在提交动作触发时一次性传递数据。代码逻辑更直接,减少了不必要的setState调用,适合不需要实时校验、预览表单内容的场景。
你的实现代码可以保持原样:
子组件Child.js:<Button title="Save" onPress={() => this.props.onSubmit(myformvalue)} />父组件App.js:
onSubmit (value) { fetch('myip', { method: 'POST', body: JSON.stringify({ customername: value, }), }) }方式二(受控组件实时同步):
这是React(包括React Native)官方推荐的受控组件模式,但它的核心优势是支持实时状态同步——比如你需要实时显示输入预览、做字段校验、或者表单内容需要在父组件其他地方复用的时候,这种方式更合适。但如果你的场景不需要这些,就没必要为了「遵循推荐」而增加额外的状态同步逻辑。
额外小提示
如果你的表单有多个字段,第一种方式可以把所有表单值打包成一个对象传递,比如:
// Child.js里 onPress={() => this.props.onSubmit({ name: myNameValue, email: myEmailValue })} // App.js里 onSubmit(formData) { fetch('myip', { method: 'POST', body: JSON.stringify(formData), }) }
这样依然能保持代码的简洁性。
内容的提问来源于stack exchange,提问作者craftdeer
相关产品推荐
相关产品推荐

