开发者问题收集

React Native TypeError:未定义不是一个对象('正在评估 useFormikContext.errors')

2021-10-21
1657

我正在使用 React Native 开发一款应用。使用 formik 制作表单时,我收到此错误“TypeError:undefined 不是对象(正在评估‘_useFormikContext.errors’) 这是我收到的错误

import { useFormikContext } from "formik";

import { ErrorMessage } from "./index";
import ImageInputList from "../ImageInputList";

function FormImagePicker({ name }) {
  const { errors, setFieldValue, touched, values } = useFormikContext();
  const imageUris = values[name];

  const handleAdd = (uri) => {
    setFieldValue(name, [...imageUris, uri]);
  };
  const handleRemove = (uri) => {
    setFieldValue(
      name,
      imageUris.filter((imageUri) => imageUri !== uri)
    );
  };

  return (
    <>
      <ImageInputList
        imageUris={imageUris}
        onAddImage={handleAdd}
        onRemoveImage={handleRemove}
      />
      <ErrorMessage error={errors[name]} visible={touched[name]} />
    </>
  );
}

export default FormImagePicker;
2个回答

您尝试获取尚未定义的对象属性,请尝试执行以下操作:

{errors && (<ErrorMessage error={errors[name]} visible={touched[name]} />)}

如果这不是您想要的,请尝试寻找其他解决方案,但请始终记住您不能就这样获取 errors[name] ,您必须确保在执行此操作之前 errors 存在。

希望这能解决您的问题,干杯!

Matt
2021-10-21

您应该调用 formimagepicker 在formik组件中:

102138418
Sam
2022-06-05