我正在使用父子模式下的多个组件的ReactJS。在以下示例中,更新函数从Board组件(父组件)传递到Note组件(子组件)。当我执行代码时,我得到CallableStatement cstmt = null;
try {
DatabaseConnection dbConn = new DatabaseConnection();
Connection conn = dbConn.initiateConnection();
String SQL = "{call insertChildNode(?, ?)}";
//CallableStatement cStmt = conn.prepareCall("{call demoSp(?, ?)}");
cstmt = conn.prepareCall(SQL);
cstmt.setInt(1, Integer.parseInt(nodeId));
cstmt.setString(2, newNodeName);
cstmt.execute();
System.out.println("Query executed...");
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
cstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
错误,并且我在构造函数中有一个绑定(this)。
Uncaught TypeError: Cannot read property 'update' of undefined
感谢您解决此问题的任何帮助。一旦绑定到位,我应该能够在子组件中调用这个父方法吗?
答案 0 :(得分:5)
this
中的{p> eachNote
未引用Board
,它指的是全局范围(浏览器中的 window
)或者您是使用strict mode
(我认为你使用它)它将是undefined
,你需要设置它
{ this.state.notes.map(this.eachNote, this) }
__^^^^___
答案 1 :(得分:2)
除了@Alexander回答,你也可以在构造函数中将eachNote
绑定到this
,它应该可以工作:
this.eachNote = this.eachNote.bind(this);