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

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

http://img2.mukewang.com/62d0cf1c00018b0605710279.jpg

代码:


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;

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


慕丝7291255
浏览 168回答 2
2回答

潇潇雨雨

在类组件中你会使用,但在功能组件中你可以不带关键字this.setValues直接使用。setValuesthis改变:this.setValues({      ...values,      ...fieldValue,    });至:setValues({      ...values,      ...fieldValue,    });还useState返回一个数组,因此您可以像这样使用它:const [ values, setValues ] = useState(initialFieldValues);请浏览文档: https ://reactjs.org/docs/hooks-state.html

幕布斯6054654

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;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript