首页 > 解决方案 > TypeError:无法读取未定义的属性“setValues”| 反应

问题描述

当我在 handleInputChange 上使用 setValues() 函数时,出现此错误:

错误图像

代码:

import React, { useState, useEffect } from "react";

const useForm = (initialFieldValues) => {
  const { values, setValues } = useState(initialFieldValues);

  const handleInputChange = (e) => {
    const { name, value } = e.target;
    const fieldValue = { [name]: value };

    this.setValues({
      ...values,
      ...fieldValue,
    });
  };

  return {
    values,
    setValues,
    handleInputChange,
  };
};

export default useForm;

我该如何解决这个错误?任何回应将不胜感激

标签: javascriptreactjs.net-corestate

解决方案


在类组件中你会使用,但在功能组件中你可以不带关键字this.setValues直接使用。setValuesthis

改变:

this.setValues({
      ...values,
      ...fieldValue,
    });

到:

setValues({
      ...values,
      ...fieldValue,
    });

useState返回一个数组,因此您可以像这样使用它:

const [ values, setValues ] = useState(initialFieldValues);

请浏览文档: https ://reactjs.org/docs/hooks-state.html


推荐阅读