返回JSX使函数成为React函数是强制性的吗

时间:2019-09-03 13:37:32

标签: reactjs react-hooks

错误:React Hook“ useInput”在不是React函数组件的函数“ main”中被调用

import React, { useState } from "react";

function useInput(initialvalue = "") {
  const [state, handleChange] = useState(initialvalue);

  const Change = e => {
    handleChange(state(e.target.value));
  };

  return [state, Change];
}

export default useInput;

错误:React Hook“ useInput”在不是React函数组件的函数“ main”中被调用

2 个答案:

答案 0 :(得分:0)

仅在react组件中支持钩子。要制作功能组件,功能名称必须以大写字母开头,并且必须返回ReactElement

为此,您可以使用JSX,它只是调用React.createElement(...)的语法糖。

答案 1 :(得分:0)

反应组件需要以大写字母开头,并且还返回JSX。

您会在错误中看到

  

错误:React Hook“ useInput”在不是React函数组件的函数“ main”中被调用

错误出现在main中,但是如果将其更改为Main(大写M),则在返回JSX(反应组件)的情况下也可以使用