dev*_*nya 5 javascript mysql reactjs
嗨,我开始学习reactjs.因此,在了解了基础知识后,我开始使用reactjs来处理数据库连接.在代码中我试图获取userId和Password来建立数据库连接并尝试列出数据库中可用的表.在Login.js中,我在单击登录按钮时创建了一个表单(userId和Password)我将建立连接并执行Show Table查询以列出数据库中的所有表,然后移动到Table.js我尝试列出可用表的页面表.现在我能够连接到数据库但不能显示表中的表Table.js,所以如何在Table.js文件中显示表列表,因为我已将我的数据库连接和查询放在Login中的按钮事件中. JS.还有可能声明一个变量全局并跨另一个js文件访问它.任何帮助都会很棒,谢谢.
Login.js
import React from 'react';
import TableContent from './tables';
class Login extends React.Component{
constructor(){
super();
this.state={
showComponent : false,
};
// this.buttonClick = this.buttonClick.bind(this);
}
buttonClick(event){
event.preventDefault();
this.setState({
showComponent: true,
})
var db = require('@dataBase/dynamoConnect')({
"UserId": "XXXXXXXXXXXXXXXXXXXXXXXX",
"Password": "YYYYYYYYYYYYYYY",
"region": "ZZZZZZZZZZ"
});
db.query("SHOW TABLES",(err,data)=>{
const tableList = data;
console.log(tableList);
})
}
render(){
return(
<div>
<form>
<label>User Id :</label>
<input type="text" className="test"/>
<br/>
<label>Password :</label>
<input type="text" className="test" />
<button onClick={this.buttonClick.bind(this)} className="connect" > Login</button>
</form>
{this.state.showComponent && <TableContent />}
</div>
)
}
}
export default Login;
Run Code Online (Sandbox Code Playgroud)
Table.js
import React from 'react';
class TableContent extends React.Component {
constructor() {
super();
this.state = {
showComponent: false,
};
this.buttonClick = this.buttonClick.bind(this);
}
buttonClick(event) {
event.preventDefault();
this.setState({
showComponent: true,
})
}
render() {
return (
<div>
<form>
<div id="first">
<label> Table </label>
<br />
//Display the tables from DB here
<select name="sometext" multiple="multiple" >
<option>Table1</option>
<option>Table2</option>
<option>Table3</option>
<option>Table4</option>
<option>Table5</option>
</select>
</div>
<div id="second">
<label> SQL </label>
<br/>
<textarea rows="4" cols="50">SQL </textarea>
</div>
<button onClick={this.buttonClick.bind(this)} > Execute </button>
<div id="third" >
{this.state.showComponent && <SampleTable />}
</div>
</form>
</div>
)
}
}
export default TableContent;
Run Code Online (Sandbox Code Playgroud)
小智 1
第一的。
组件Table.js需要知道要显示的数据。
1 - 您必须通过调用查询回调将查询结果保存在组件状态中this.setState({tableData: tableList}):
db.query("SHOW TABLES",(err,data)=>{
const tableList = data;
this.setState({
tableData: tableList,
});
})
Run Code Online (Sandbox Code Playgroud)
2 - 您需要将保存的结果作为属性传递给TableContent,如下所示:
在Login.js:
{this.state.showComponent && <TableContent data={this.state.tableData} />};
3 - 在子组件中渲染数据。您可以通过 访问它this.props.data。您可以迭代结果数组并在单个循环中渲染所有表行。看看这个反应文档。
第二:
另外是否可以声明一个全局变量并通过另一个js文件访问它
简而言之 - 是的。您可以从模块中导出函数、变量、类。
小例子:
// scriptA.js;
export const a = 42;
// scriptB.js;
import { a } from 'path/to/scriptA.js';
console.log(a) // will print 42;
Run Code Online (Sandbox Code Playgroud)
此示例假设您正在使用 es6 导入/导出功能。你require也可以。
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |