gpt4 book ai didi

javascript - 从 jsp 调用 React JS

转载 作者:行者123 更新时间:2023-11-30 08:31:07 27 4
gpt4 key购买 nike

我是 React 的新手,我正在制作一个网页来显示项目列表。

我在名为 admins.js 的文件中有这个 React 代码:

 //more code

var AdminsBox = React.createClass({
getInitialState: function() {
return {adminsList: []};
},
setAdminsArray: function(data) {
this.setState({adminsList: data});
},
render: function() {

return (
<div>
<AdminsContentBox adminsList={this.state.adminsList}/>
</div>
);
}});

var AdminsBoxRender = ReactDOM.render(
<AdminsBox />,
document.getElementById('adminsContent')
);

在文件 index.jsp 中:

    <html lang="es">
<head>
<link rel="stylesheet" href="base.css" />
<script src="react.js"></script>
<script src="react-dom.js"></script>
<script src="browser.js" charset="utf-8"></script>
<script src="jquery.min.js"></script>
<script src="marked.min.js"></script>

<link rel="stylesheet" href="fonts.css">
<link rel="stylesheet" href="material.indigo-blue.min.css">

<script type="text/babel" src="admins.js"></script>

<script>
$(document).ready(function() {
$.ajax({
url: 'myUrlServlet',
type: 'POST',
data: "function=getAdmins",
dataType: "json",
success: function(data){
AdminsBoxRender.setAdminsArray(data);
}
});
});
</script>
</head>


<body>
<div id="adminsContent"></div>
</body>

我收到的错误是未定义 AdminsBoxRender。

我做错了什么?

提前谢谢你。

最佳答案

这不是为您的组件获取数据的正确方法,您应该在 componentDidMount()

中获取它
var AdminsBox = React.createClass({
getInitialState: function() {
return {adminsList: []};
},
componentDidMount: function(){
$.ajax({
url: 'myUrlServlet',
type: 'POST',
data: "function=getAdmins",
dataType: "json",
success: function(data){
this.setState({adminsList: data});
}
});
},
setAdminsArray: function(data) {
this.setState({adminsList: data});
},
render: function() {

return (
<div>
<AdminsContentBox adminsList={this.state.adminsList}/>
</div>
);
}});


window.AdminsBoxRender = ReactDOM.render(
<AdminsBox />,
document.getElementById('adminsContent')
);

您应该将与 React 相关的内容保留在 React“内部”。

关于javascript - 从 jsp 调用 React JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com