在官方示例中使用 useState 时出错

IT技术 reactjs react-hooks
2021-05-23 11:35:22

这段代码来自这里

import React from 'react';
import useState from 'react'

let f = function() {

  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

export default f;

首先,来自该页面的这一行...

import React, { useState } from 'react';

...导致useState为空,但我更改了该行。无论如何,我收到以下错误...

TypeError: react__WEBPACK_IMPORTED_MODULE_1___default(...) is not a function

如果我将代码更改为这个,这个错误就会消失......

const [count, setCount] = [1, () => {}]

所以我认为useState是问题所在——它不是一个函数。也许我的自定义导入没有做正确的事情。在这种情况下,为什么官方导入不起作用?

我正在使用 React 16.8.1。我的包文件有这些...

"react-dom": "16.8.1",
"react": "16.8.1",

我已经删除了本地node_modules文件夹并运行npm install --force -g.

Console.loguseState给...

在此处输入图片说明

2个回答

useState是命名导出。您不能像默认导出一样导入它。

改变这两行

import React from 'react';
import useState from 'react';

import React, { useState } from 'react';

您必须重新启动 Web 服务器才能使用新版本的 React 重新编译。多。