reactjs - 当另一个字段更改时,MUI 自动完成更改所选选项

标签 reactjs material-ui formik

我有两个带有 MUI 和 Formik 的字段,一个普通的 TextField 和一个自动完成字段。我需要在文本字段更改时选择自动完成选项,该怎么做?

在formik中一切正常,值发送了正确的数据,但自动完成不会更改为正确的值。

示例:https://codesandbox.io/s/compassionate-river-f32btt?file=/src/demo.js

最佳答案

options 属性是一个数组,但值由字符串表示。您需要将一个函数传递给 isOptionEqualToValue 属性,AutoComplete 组件将使用该函数来确定项目数组中的哪个项目与当前值匹配。

您还需要将 value 属性移出文本字段并将其直接传递给自动完成功能,以便它可以管理自己的值。

<Autocomplete
  filterSelectedOptions
  id="estado"
  name="estado"
  options={states}
  clearText="Apagar"

  // Add the following props
  isOptionEqualToValue={(option, value) => option.value === value}
  value={formik.values.estado}

  renderInput={(params) => (
    <TextField
      {...params}
      error={Boolean(formik.errors.estado)}
      helperText={formik.errors.estado}
    />
  )}
  onChange={(e, newValue) => {
    formik.handleChange({
      target: { name: "estado", value: newValue.value },
    });
  }}
/>;

关于reactjs - 当另一个字段更改时,MUI 自动完成更改所选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71387135/

相关文章:

javascript - 如何编辑对象并将新对象传递给数组? ReactJS, Material UI

reactjs - 使用 Formik 和 Yup 进行验证时,React Select 未显示错误

javascript - useState 不会在数组状态上使用 push、unshift 和 pop 重新渲染

javascript - 如何用样式组件覆盖 material-ui css?

reactjs - 警告 : Can't perform a React state update on an unmounted component. 在功能组件中

javascript - 从父组件打开 Material UI 对话框?

reactjs - 占位符中的 Formik 组件 =“textarea” 多行

reactjs - 是的 - 如何有条件地验证至少设置了 n 个值之一?

javascript - React router如何根据全局变量加载css

node.js - 警告 : Received NaN for the `value` attribute. 如果这是预期的,请将该值转换为字符串。多部分形式的输入