ReactJS ES6函数绑定 - 未捕获TypeError:无法读取未定义的属性'update'

时间:2016-01-13 09:00:25

标签: javascript reactjs

我正在使用父子模式下的多个组件的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

感谢您解决此问题的任何帮助。一旦绑定到位,我应该能够在子组件中调用这个父方法吗?

2 个答案:

答案 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);