为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError:无法读取未定义的属性“setValues”| 反应

TypeError:无法读取未定义的属性“setValues”| 反应

慕丝7291255 2022-07-15 10:20:59
当我在 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;我该如何解决这个错误?任何回应将不胜感激
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

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


改变:


this.setValues({

      ...values,

      ...fieldValue,

    });

至:


setValues({

      ...values,

      ...fieldValue,

    });

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


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

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


查看完整回答
反对 回复 2022-07-15
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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 };


    setValues({

      ...values,

      ...fieldValue,

    });

  };


  return {

    values,

    setValues,

    handleInputChange,

  };

};


export default useForm;


查看完整回答
反对 回复 2022-07-15
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信