ReactJS 给出 inst.render 不是函数错误

新手上路,请多包涵

当我遇到一个奇怪的错误 Uncaught TypeError: inst.render is not a function 时,我正在使用 React 和 ReactDOM 展示一个非常基本的 Hello World。在这个 JSBin 中看到它。

我用过很多 React,但对 ES6 来说是新的。有什么我在这里看不到的想法吗?

该错误似乎是说 Hello 没有 render 方法,但我不确定。

 <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <script src="
               https://cdnjs.cloudflare.com/ajax/libs/redux/3.0.4/redux.js" type="text/javascript"></script>
  <script src="https://fb.me/react-0.14.0.js"></script>
  <script src="https://fb.me/react-dom-0.14.0.js"></script>
</head>
<body>
  <div id="root"></div>

  <script>
const Hello = () => {
  <h1>Hi</h1>
};

const foo = () => {
  ReactDOM.render(
    <Hello />,
    document.getElementById('root')
  );
}

foo();
</script>
</body>
</html>

原文由 Don P 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

原来的

要在 ES6 中使用 React,您需要继承 React.Component 类。

 class Hello extends React.Component {
  render() {
    return <h1>Hi</h1>
  }
}

请参阅 此处 的文档。

更新

您也可以在您的情况下使用 functionarrow 。但是,您需要返回组件。

 const Hello = () => <h1>Hi</h1>;

注意缺少的花括号。在 ES6 中,不带花括号的 箭头函数 返回其主体表达式的结果。

原文由 PSWai 发布,翻译遵循 CC BY-SA 4.0 许可协议

TypeError: instance.render is not a function 当你的 React 组件中没有 render() 函数时会出现错误。

原文由 Ish 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进