"react.default.useContext不是一个函数"

6
  • 我正在使用Material UI Stepper。
  • 我从他们的网站上下载了代码,但是它出现了问题。
  • 所以我在VerticalLinearStepper方法中放置了一个控制台调试语句。
  • 在这一行,它会输出一个方法:console.log("useStyles----->", useStyles);
  • 但是我遇到了一个错误_react.default.useContext不是一个函数。
  • 你能告诉我如何修复它吗?
  • 这样将来我就可以自己解决这个问题了。
  • 下面提供代码片段和Sandbox链接:

https://codesandbox.io/s/v3o3zmxk90

function VerticalLinearStepper() {
  console.log("useStyles----->", useStyles);

  const classes = useStyles();

  const [activeStep, setActiveStep] = React.useState(0);
  const steps = getSteps();

  function handleNext() {
    setActiveStep(prevActiveStep => prevActiveStep + 1);
  }

  function handleBack() {
    setActiveStep(prevActiveStep => prevActiveStep - 1);
  }

  function handleReset() {
    setActiveStep(0);
  }
2个回答

13

@material-ui/styles 对 react >= 16.7.0-alpha.0 和 react-dom >= 16.7.0-alpha.0 有一个同级依赖关系。 请将您的 react 和 react-dom 依赖更新为以下版本:

Original Answer:

"dependencies": {
    "react": "^16.7.0-alpha.2",
    "react-dom": "^16.7.0-alpha.2",
},

"material-ui已被弃用,请使用@material-ui/core代替。但是,后来发现@material-ui/core的组件示例包括@material-ui/styles,该库依赖于不稳定版本的React :(" - CrashCodes

4

据我所见,您正在使用一种不支持钩子(useXXX)的 React 版本。

有时这也会让我感到困惑,但是在你的 package.json 中,latest 实际上意味着“最新的稳定版本”。
为了使用支持钩子的版本,您可以使用 reactreact-dom 的版本 next :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接