【问题标题】:React.js checkbox example in v0.13.3?v0.13.3 中的 React.js 复选框示例?
【发布时间】:2015-09-11 06:37:09
【问题描述】:

全新的 React(两天前在 wikipedia 上查找)因此从主页下载了当前版本 v0.13.3。试图找到一个复选框示例(选中一个框,发生了一些事情——比如出现了一个标签或其他东西)。这个工作在JSFIDDLE。非常沮丧地发现这些东西在新版本的 React 中经常被弃用,所以旧的例子不再工作了。在这一点上,浏览器说

Uncaught TypeError: Cannot read property '__reactAutoBindMap' of undefined`)

这甚至不在代码中。看了一堆文章,试过一堆类似的东西

React.renderComponent → React.render

任何人都知道使这个示例在当前版本的 v0.13.3 上运行所需的魔术技巧吗?

或者任何人知道 v0.13.3 中的工作复选框示例?

谢谢。

【问题讨论】:

标签: javascript checkbox reactjs


【解决方案1】:

错误在于元素的渲染。

React.renderComponent(
    CrossoutCheckbox({text: "Text Text", complete: false}),document.body
);

如果你不想使用 JSX,正确的语法如下:

React.render(
    React.createElement(
        CrossoutCheckbox, {text: "Test text", complete: false}),
        document.body);

在 0.13.0 中删除了直接创建元素,您可以在更改日志https://github.com/facebook/react/blob/master/CHANGELOG.md 中阅读

在 0.12 中警告的弃用模式不再起作用:最突出的是,在不使用 JSX 或 React.createElement 的情况下调用组件类,并在 JSX 或 createElement 中使用非组件函数

【讨论】:

  • 谢谢!我试过那个(你可以从我正在尝试的小提琴中最后一个注释掉的区域看到),但是我有两个语法错误!我需要用逗号和空格替换 CrossoutCheckbox 之后的开头括号。并且还需要删除右括号和分号。你的代码做了什么。谢谢!
  • 好吧!!尝试使用 JSX 而不是 createElement 语法。代码会更清晰。所有现代 IDE 都支持它,您可以添加一些 gulp/grunt 自动化来预构建您的代码。
  • 谢谢。是的,我原以为initial working example 使用的是 JSX。这是正确的?但我想我没有意识到我正在阅读和尝试的一些解决方案没有使用 JSX。那是一个灯泡在那里熄灭!是的,最终我想要一个 JSX 解决方案。所以,我会继续努力。再次感谢。
猜你喜欢
  • 2018-01-31
  • 2016-06-29
  • 2021-10-22
  • 2017-01-09
  • 1970-01-01
  • 2016-04-27
  • 2020-11-28
  • 2020-12-18
  • 2015-04-13
相关资源
最近更新 更多