带有 Formik 的 React-Native 选择器
React-Native Picker with Formik
我的基本表单工作正常,但是,由于 react-native 有一些注意事项,我可以使用一些帮助来了解问题是我如何使用 formik,还是与 react-native 一起使用。
在这个特定的表单中,当我尝试使用 formik 在 react-native 中填写一个选择器时,在我 select 一个选项后,表单立即将选择器重置为原始值。我已经剥离了代码,因为我觉得有人应该在没有大量代码的情况下得到答案,但我没有看到我遗漏了什么。谢谢
<Formik
onSubmit={
props.onSubmit(props.values)
}
mapPropsToValues = {(props) => ({
id: props.id,
status: props.status
})}
validate={values => {
// same as above
let errors = {};
return errors;
}}
onValueChange={ (itemIndex) => {
this.props.values.status = itemIndex
}}
render= { props => (
const { id, status } = this.props
<View>
<Text style={styles.textResultsHeaderStyle}>Job: {id}</Text>
<Picker
selectedValue={status}
onValueChange={itemIndex => this.onValueChange}>
<Picker.Item label="New" value="0" />
<Picker.Item label="Requested" value="1" />
<Picker.Item label="Responded" value="2" />
<Picker.Item label="Closed" value="3" />
</Picker>
<RoundedButton disabled={props.isSubmitting} onPress={props.handleSubmit} text="SUBMIT" />
</View>
)}
/>
我刚刚在 github 上回答了类似的问题。我想您正在使用 RN 中的内置选择器组件。
如果没有,那么您需要查看您的选择器组件的文档以了解如何获取更改时的值。
https://github.com/jaredpalmer/formik/issues/1378#issuecomment-480189488
我的基本表单工作正常,但是,由于 react-native 有一些注意事项,我可以使用一些帮助来了解问题是我如何使用 formik,还是与 react-native 一起使用。
在这个特定的表单中,当我尝试使用 formik 在 react-native 中填写一个选择器时,在我 select 一个选项后,表单立即将选择器重置为原始值。我已经剥离了代码,因为我觉得有人应该在没有大量代码的情况下得到答案,但我没有看到我遗漏了什么。谢谢
<Formik
onSubmit={
props.onSubmit(props.values)
}
mapPropsToValues = {(props) => ({
id: props.id,
status: props.status
})}
validate={values => {
// same as above
let errors = {};
return errors;
}}
onValueChange={ (itemIndex) => {
this.props.values.status = itemIndex
}}
render= { props => (
const { id, status } = this.props
<View>
<Text style={styles.textResultsHeaderStyle}>Job: {id}</Text>
<Picker
selectedValue={status}
onValueChange={itemIndex => this.onValueChange}>
<Picker.Item label="New" value="0" />
<Picker.Item label="Requested" value="1" />
<Picker.Item label="Responded" value="2" />
<Picker.Item label="Closed" value="3" />
</Picker>
<RoundedButton disabled={props.isSubmitting} onPress={props.handleSubmit} text="SUBMIT" />
</View>
)}
/>
我刚刚在 github 上回答了类似的问题。我想您正在使用 RN 中的内置选择器组件。
如果没有,那么您需要查看您的选择器组件的文档以了解如何获取更改时的值。
https://github.com/jaredpalmer/formik/issues/1378#issuecomment-480189488