如何解决“;未捕获的类型错误:无法构造'评论':请使用'新'运算符"关于Rea
How to resolve "Uncaught TypeError: Failed to construct 'Comment': Please use the 'new' operat....." with respect to React JS?
我有一个home.jsp,在body 中
<body>
<script type="text/babel" src="../resources/scripts/example.js"></script>
<a href="javascript:Comment();">News</a>
</body>
在另一个例子.js中,我有以下
alert("I am coming here ... BEEP");
var Comment = React.createClass({
loadCommentsFromServer: function() {
$.ajax({
url: this.props.url,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
getInitialState: function() {
return {data: []};
},
componentDidMount: function() {
this.loadCommentsFromServer();
setInterval(this.loadCommentsFromServer, this.props.pollInterval);
},
render: function() {
return (
<div className="comment">
<Comment data={this.state.data} />
<span dangerouslySetInnerHTML={{__html: data}} />
</div>
);
}
});
ReactDOM.render(
<Comment url="/workingUrl" pollInterval={2000} />,
document.getElementById('content')
);
我在Chrome控制台中收到以下错误。
Uncaught TypeError: Failed to construct 'Comment': Please use the 'new'
operator, this DOM object constructor cannot be called as a function.
我在home.jsp文件中添加了React js标记。
如何解决此问题?请帮帮我。
也许这会帮助和我有同样问题的人……我只是忘记导入我试图渲染的组件:
import { Comment } from './comment'
您不能通过Comment()
调用React Component <Comment/>
。该错误要求您创建Comment
类的实例,即类似于var comment = new Comment()
的实例。然而,在你的问题中,我们不需要这个。
<body>
<a href="javascript:RenderComment();">News</a>
<div id="content"> </div>
</body>
您的React组件<Comment/>
应该是独立的,并且将用作ReactDOM.render(...)
的参数。因此,Comment
内部不应该有ReactDOM.render(...)
函数。此外,锚点元素click不能调用Comment()
,因为它不是一个进行渲染的函数,而是一个Class
,其instance
安装在DOM
上。单击<a/>
标记时,应调用RenderComment()
,它将依次渲染<Comment/>
组件。
var RenderComment = function RenderComment() {
ReactDOM.render(React.createElement(
"div", null, " ", Comment, " "
), document.getElementById("content"));
};
在这里,我们将呈现您使用React.createClass
定义的<Comment/>
组件。
var Comment = React.createClass({
// Your component functions and render() method
// No ReactDOM.render() method here
}
同意Troy Carlson的上述答复。我在React原生项目中遇到了类似的问题。我在里面使用了一些内置组件(React native),但没有导入。在正确导入所有组件后,错误消失了
import {
FlatList,
SafeAreaView,
Text,
View,
...
} from "react-native";
相关文章:
- 添加文字和评论功能更新Div
- 包括用于facebook评论框的JavaScript SDK
- facebook”;添加评论“;popup获胜'不要消失
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 当内联链接“#"被点击或输入到url中,就像链接到reddit评论时一样
- 如何解决“;未捕获的类型错误:无法构造'评论':请使用'新'运算符"关于Rea
- "@某事“;评论中的单词
- 删除值=";评论"只要从输入框中单击它
- 为什么“;Facebook评论"iFrame在使用CSS'显示:none'