使用 Formik 的 React-Native 选择器

Posted

技术标签:

【中文标题】使用 Formik 的 React-Native 选择器【英文标题】:React-Native Picker with Formik 【发布时间】:2017-12-24 15:00:12 【问题描述】:

我的基本表单工作正常,但是,由于 react-native 有一些警告,我可以使用一些帮助来了解问题是我如何使用 formik,还是将它与 react-native 一起使用。

在这个特定的表单中,当我尝试使用 formik 在 react-native 中填写选择器时,表单会在我选择一个选项后立即将选择器重置为原始值。我已经剥离了代码,因为我觉得有人应该在没有大量代码的情况下得到答案,但我没有看到我缺少的东西。谢谢。

<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>
  )
/>

【问题讨论】:

问题是selectedValue=status 不保存选定的值。它可能未定义。 【参考方案1】:

我刚刚在 github 上回答了一个类似的问题。我想您正在使用 RN 中的内置选择器组件。 如果没有,那么您需要查看您的选择器组件的文档以了解如何获取更改值。https://github.com/jaredpalmer/formik/issues/1378#issuecomment-480189488

【讨论】:

以上是关于使用 Formik 的 React-Native 选择器的主要内容,如果未能解决你的问题,请参考以下文章

Formik使用教程以及开发中遇到的问题

如何在 React 中使用 Formik 的自定义输入?

如何结合 Formik 使用 React NumberFormat 包?

如何从钩子内的 Formik 中获取值?

将 Material-UI 的 Autocomplete 组件与 Formik 一起使用

Formik官方应用案例解析组件生命周期事件